我使用zendpdf类在网站上生成PDF,它正常工作。现在,我正在尝试将不同的pdfs与zendpdf合并,并且有一个问题总是在空白PDF中返回,但没有任何错误。这是我的密码:
$pdf_merged = new ZendPdf\PdfDocument();
$pdf_1 = new ZendPdf\PdfDocument();
$pdf_1->load("public/files/invoices/pdf1.pdf");
$pdf_2 = new ZendPdf\PdfDocument();
$pdf_1->load("public/files/invoices/pdf2.pdf");
foreach ($pdf_1->pages as $page){
    $pdf_extract = clone $page;
    $pdf_merged->pages[] = $pdf_extract;
}
unset($pdf_extract);
foreach ($pdf_2->pages as $page){
    $pdf_extract = clone $page;
    $pdf_merged->pages[] = $pdf_extract;
}
unset($pdf_extract);
$pdf_merged->save("public/files/invoices/MERGED.pdf");我也尝试使用Extractor类,但结果是相同的:
$pdf_merged = new ZendPdf\PdfDocument();
$pdf_1 = new ZendPdf\PdfDocument();
$pdf_1->load("public/files/invoices/pdf1.pdf");
$pdf_2 = new ZendPdf\PdfDocument();
$pdf_1->load("public/files/invoices/pdf2.pdf");
$extractor = new ZendPdf\Resource\Extractor();
foreach ($pdf_1->pages as $page){
    $pdf_extract = $extractor->clonePage($page);
    $pdf_merged->pages[] = $pdf_extract;
}
unset($pdf_extract);
foreach ($pdf_2->pages as $page){
    $pdf_extract = $extractor->clonePage($page);
    $pdf_merged->pages[] = $pdf_extract;
}
unset($pdf_extract);
$pdf_merged->save("public/files/invoices/MERGED.pdf");我已经做了一些研究(这里和zf2手册),显然这个解决方案应该有效,但在我的情况下却不起作用。
可能是PDF版本的问题吗?
先入为主
发布于 2015-11-25 08:44:33
我所知道的是,pdfs大于5MB存在问题。检查问题在GitHub上.
不确定你面临的是不是同样的问题。你试过用较小的文件吗?
根据GitHub上的答案,该模块“不再维护”。
我还在寻找其他选择..。
编辑
ZendPdf\PdfDocument::load是静态法。你可以这样做:
use ZendPdf\PdfDocument;
...
$pdf_1 = PdfDocument::load("public/files/invoices/pdf1.pdf");
$pdf_2 = PdfDocument::load("public/files/invoices/pdf2.pdf");发布于 2015-11-30 09:22:06
即使PHP方法很好地合并PDF文件,也有很多不便(库不再维护,bug,与PHP本身相关的问题,性能.)
我放弃了PHP来使用PDFUNITE。
这一个可以合并超过5000 PDF文件(发票在我的生产环境)在不到0.20秒。在那之后,我就不能回到PHP了。
https://stackoverflow.com/questions/33911782
复制相似问题