我尝试从数据库中选择多个 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/