php - 使用 PDF 合并器将多个 pdf 合并为一个

标签 php mysql pdf

我尝试从数据库中选择多个 PDF 文件并将它们合并为一个。数据库中存储了 pds 的路径。我所做的是将行的 session ID 存储起来,然后查询数据库并为每个 ID 选择 pdf。我遇到过这个问题:

It is generated only one PDF the first one from the session array.

这是我到目前为止所拥有的:

require_once("database.php");
include 'PDFMerger.php';

$files = $_SESSION['itemid'];
print_r($files);
if(is_array($files)) {

$fileFolder='uploads/';
$pdf = new PDFMerger;

foreach($files as $file) {

    $sql = "SELECT files FROM document_upload WHERE upload_id = :id"; 
    $result = $pdo->prepare($sql);
    $result->bindParam(":id", $file);
    $result->execute();                 

    $resArray = $result->fetchAll();

    foreach ( $resArray as $res )
    {
         $items = explode(',', $res["files"]);

         foreach ($items as $item) {

           $pdf->addPDF($fileFolder.$item, 'all')

            ->merge('browser', 'TEST2.pdf');
         }
    }

  }     
}

print_r($files); 显示所有文件都在数组中。

print_r($resArray); 仅显示 1 个 pdf .. 数组中的第一个。

最佳答案

是的,您只能得到一份 pdf,因为您必须将合并函数放在 foreach 之外,因为这样您只能合并一个结果。如果你在 foreach 之后合并它们,你将拥有所有它们。尝试这样

foreach($files as $file) {

    $sql = "SELECT files FROM document_upload WHERE upload_id = :id"; 
    $result = $pdo->prepare($sql);
    $result->bindParam(":id", $file);
    $result->execute();                 

    $resArray = $result->fetchAll();

    foreach ( $resArray as $res )
    {
       $items = explode(',', $res["files"]);

       foreach ($items as $item) {

          $pdf->addPDF($fileFolder.$item, 'all');


       }
    }

}     
$pdf->merge('browser', 'TEST2.pdf');

关于php - 使用 PDF 合并器将多个 pdf 合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37020891/

相关文章:

pdf - 是否可以创建不可见的 XFA 表单?

javascript - PDFMAKE 未生成 pdf 水印

python - 如何在 Peewee 中选择二度 BackrefAccessor 的计数?

C# 使用 iTextSharp 将位图保存为 PDF

php - 如何在codeigniter中获取用户和个人资料表数据

PHP 在加载时调用 javascript

php - mysql 计数,其中行 = 0

php - 避免在 MySQL/PHP 中重复显示记录

php - MySQL中有没有办法根据CASE动态定义运算符?

MySQL建表查询1064错误