1

我在页面上添加了一个链接,单击该链接会生成一个 pdf 并要求下载我使用了 fpdf 类的下载。

我的新要求是单击链接应生成 n 个具有不同内容的 pdf,并应要求下载这些 pdf。

我无法找到实现相同目标的方法。

请帮助我。

谢谢

4

4 回答 4

2

http://www.phpconcept.net/pclzip/你会发现一个不错的 php zip 库。想象一下有一个文件名数组,比如

$filenames = array(
    "file_01.txt",
    "file_02.doc",
    "file_03.pdf"
);

代码看起来像这样(未经测试)

require_once('pclzip.lib.php');
$archive = new PclZip('archive.zip');
foreach($filenames as $filename) {
    $result = $archive->add($filename);
    if($result==0) {
        die ("Error: " . $archive->errorInfo(true));
    }
}
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=archive.zip");
readfile("archive.zip");

希望这可以帮助 ;-)

于 2010-05-20T10:35:53.757 回答
1

您不能向用户发送多个文件,但您可以生成它们,在服务器上使用例如 zip 打包并作为一个文件发送。

于 2010-05-20T07:37:57.980 回答
1

将生成的文件发送到浏览器的正确方法是$pdf->Output()- 这将只允许您发送一个生成的 pdf 文件。发送更多文件的唯一选择是将它们压缩 [1],然后发送包文件。

[1] http://www.devco.net/archives/2005/05/24/creating_zip_files_with_php.php

于 2010-05-20T07:44:47.453 回答
1

我在我的 php 页面中使用了流动代码:

 if(isset($_GET['get_pdf'])){
     $query = "SELECT * FROM tbl_fixation WHERE postedby = '$name_user' ORDER BY fixation_id ASC ";
      $data_query = $hrmdb->select($query);
      if($data_query ){
        $i=0;
        while ($rows= $data_query ->fetch_assoc()) {
          $i++;
          $fixation_id = $rows['fixation_id']; 
echo "<script> window.open('allpdf/single_letter_fixation.php?fixation_id=".$fixation_id."','_blank');</script>";  
    }}
     }

single_letter_fixation.php 中 pdf 文件的输出选项是:

$pdf->Output('D', $personal_file_number.pdf');

它运作良好。

于 2019-04-30T11:46:46.527 回答