我对你们有些问题..我想使用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。
答案 0 :(得分:1)
放入require('fpdf181 / fpdf.php');跳出循环或使用require_once('fpdf181 / fpdf.php');在循环中使用它时,它将在第二次迭代中包含相同的类,这将导致重复的类定义。
此外,Output方法的参数应按如下所示反转
$pdf->Output('F',"$file_name");
根据文档,输出功能如下
string Output([string dest [,string name [,boolean isUTF8]]])
说明
将文档发送到给定的目的地:浏览器,文件或字符串。在浏览器的情况下,可以使用PDF查看器或强制进行下载。 必要时,该方法首先调用Close()以终止文档。 参数
目的地
将文档发送到的目的地。可以是以下之一:
I:将文件内联发送到浏览器。使用PDF查看器(如果有)。
D:发送到浏览器并强制使用名称指定的名称下载文件。
F:使用名称指定的名称(可能包含路径)保存到本地文件。
S:以字符串形式返回文档。
默认值为I。
名称
文件名。在目的地S的情况下将其忽略。 默认值为doc.pdf。