首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用zendpdf合并pdfs

用zendpdf合并pdfs
EN

Stack Overflow用户
提问于 2015-11-25 08:36:52
回答 2查看 751关注 0票数 4

我使用zendpdf类在网站上生成PDF,它正常工作。现在,我正在尝试将不同的pdfs与zendpdf合并,并且有一个问题总是在空白PDF中返回,但没有任何错误。这是我的密码:

代码语言:javascript
运行
复制
$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类,但结果是相同的:

代码语言:javascript
运行
复制
$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版本的问题吗?

先入为主

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-25 08:44:33

我所知道的是,pdfs大于5MB存在问题。检查问题在GitHub上.

不确定你面临的是不是同样的问题。你试过用较小的文件吗?

根据GitHub上的答案,该模块“不再维护”。

我还在寻找其他选择..。

编辑

ZendPdf\PdfDocument::load静态法。你可以这样做:

代码语言:javascript
运行
复制
use ZendPdf\PdfDocument;

...

$pdf_1 = PdfDocument::load("public/files/invoices/pdf1.pdf");
$pdf_2 = PdfDocument::load("public/files/invoices/pdf2.pdf");
票数 2
EN

Stack Overflow用户

发布于 2015-11-30 09:22:06

即使PHP方法很好地合并PDF文件,也有很多不便(库不再维护,bug,与PHP本身相关的问题,性能.)

我放弃了PHP来使用PDFUNITE

这一个可以合并超过5000 PDF文件(发票在我的生产环境)在不到0.20秒。在那之后,我就不能回到PHP了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33911782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档