在 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.
我有一些问题要问你们。我想使用 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.