Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将PDF与zendpdf合并_Php_Zend Framework2 - Fatal编程技术网

Php 将PDF与zendpdf合并

Php 将PDF与zendpdf合并,php,zend-framework2,Php,Zend Framework2,我使用zendpdf类在网站上生成PDF,它工作正常。 现在,我正试图将不同的PDF与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();

我使用zendpdf类在网站上生成PDF,它工作正常。 现在,我正试图将不同的PDF与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");
我还尝试使用提取器类,但结果相同:

$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版本的问题吗


Tahnks提前

据我所知,大于5MB的PDF存在问题。检查问题

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

根据GitHub上的答案,该模块“不再维护”。
我仍然在寻找替代品

编辑
ZendPdf\PdfDocument::load
is。您可以这样做:

use ZendPdf\PdfDocument;

...

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

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

我放弃了使用PHP的替代方案


这一个能够在不到0.20秒内合并超过500000个PDF文件(我的生产环境中的发票)。在那之后,我不能再回到PHP了。

你犯了一个错误,你调用了两次
$pdf\u 1->load(…)
你是对的。写这篇文章是个错误,但你用最后一个答案解决了我的问题:-)哇!,使用这种方法加载文档,合并功能可以正常工作。目前,我的文件大约有20万份,所以我不会有问题。非常感谢