使用fpdf php保存三个pdf

时间:2018-08-29 14:49:11

标签: php fpdf

我正在使用FPDF通过转换文本来保存pdf。

我正在使用以下代码:

   <?php
require('fpdf.php');
class PDF extends FPDF
{

function ChapterBody($file)
{
    // Read text file
    $txt = file_get_contents($file);
    $txt = str_replace("{{id_no}}","002",$txt);
    // Times 12
    $this->SetFont('Times','',12);
    // Output justified text
    $this->MultiCell(0,5,$txt);
    // Line break
    $this->Ln();
    // Mention in italics
    $this->SetFont('','I');
    //$this->Cell(0,5,'(end of excerpt)');
}

function PrintChapter($num, $title, $file)
{
    $this->AddPage();
   // $this->ChapterTitle($num,$title);
    $this->ChapterBody($file);
}
}


for($i=0;$i<3;$i++)
{
$pdf = new PDF();
$pdf->PrintChapter('','A RUNAWAY REEF','test.txt');
$pdf->Output('test'.$i.'.pdf','D');
}
?>

我已经使用for loop下载了3次pdf文件,但是当我执行此代码时,它仅下载了一次文件名为test0.pdf的文件,为什么test1.pdf and test2.pdf id未下载使用此代码?

2 个答案:

答案 0 :(得分:0)

不能。这不是PHP的限制,而是HTTP / Web浏览器的限制。 HTTP没有提供一种通过一个请求发送多个文件的机制。

FPDF与它无关。如果要发送3个文件,可以先将它们打包为zip,然后再发送zip。

另一个耗时的选择是编写一个脚本,该脚本可以生成多个文件并以这种方式欺骗它。

答案 1 :(得分:0)

您不能一起下载这3个文件,因为 HTTP协议旨在每个请求仅发送一个文件。

您需要一次将3个文件存储在服务器的文件夹中,然后才能压缩它们。 This answer解释了如何将文件存储在zip文件中并下载。