在 php 中循环生成 fpdf 文件

Generate fpdf files with while looping in php

我有一些问题要问你们。我想使用 php fpdf 为每个文件生成不同文件名的 pdf 文件。这是我的代码

<?php
$no= 1;
$data = mysql_query("SELECT * FROM file");
while($c_data = mysql_fetch_array($data)){
$cek_pengesahan = mysql_query("SELECT * FROM simpeg_pangkat.pengesahan where 
tmt = '$data[tmt_baru]'");
$pengesahan = mysql_fetch_array($cek_pengesahan);
$file_name = 'File_'.$no++.'.pdf';
require('fpdf181/fpdf.php');
$pdf = new FPDF('P','mm','legal');
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$pdf->SetXY(100,50-6);
$pdf->Cell(1000,10,'PETIKAN',0,'C');
$pdf->SetFont('Arial','B',12);
$pdf->SetXY(74,55-6);
$pdf->Cell(1000,10,'KEPUTUSAN BUPATI LUMAJANG',0,'C');
$pdf->SetFont('Arial','',12);
$pdf->SetXY(79,60-6);
$pdf->Cell(1000,10,'NOMOR : '.$pengesahan[no_sk],0,'C');
$pdf->SetXY(99,65-6);
$pdf->Cell(1000,10,'TENTANG',0,'C');
$pdf->Output("$file_name",'F');
}
?>

它应该生成 (File_1.pdf,File_2.pdf,File_3.pdf) 个文件。但执行此代码后,它只生成 File_1.pdf .. File_2.pdf 和 File_3.pdf 不会生成。

提出要求('fpdf181/fpdf.php');退出循环或使用 require_once('fpdf181/fpdf.php');当您在循环中使用它时,它将在第二次迭代中包含相同的 class,这将导致重复的 class 定义。

另外,Output方法的参数应该反转如下

$pdf->Output('F',"$file_name");

根据文档,输出函数如下

string Output([string dest [ string name [ boolean isUTF8]]])

描述

将文档发送到给定的目的地:浏览器、文件或字符串。如果是浏览器,可以使用 PDF 查看器或强制下载。 如有必要,该方法首先调用 Close() 来终止文档。 参数

目的地

发送文档的目的地。它可以是以下之一:

I: 将文件内联发送到浏览器。如果可用,则使用 PDF 查看器。

D: 发送到浏览器并强制下载名称给定名称的文件。

F: 以name给定的名称(可包含路径)保存到本地文件。

S: return 字符串形式的文档。

默认值为I。

姓名

文件名。在目的地 S 的情况下将被忽略。 默认值为 doc.pdf.