Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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 将2 pdf与Zend框架合并_Php_Zend Framework_Pdf_Merge - Fatal编程技术网

Php 将2 pdf与Zend框架合并

Php 将2 pdf与Zend框架合并,php,zend-framework,pdf,merge,Php,Zend Framework,Pdf,Merge,我正在尝试合并2个PDF,一个在我的服务器上(不是动态生成的),另一个在合并之前生成,并且没有保存在服务器上的任何位置(我只是希望我的客户端下载它)。所以我只有pdf的内容。两种PDF格式相同(A4) 合并的文件将有2页,并且不会保存在服务器上 因为我使用的是Zend框架,所以我更喜欢它的解决方案(在网上找不到),还有什么建议吗 编辑:因为人们懒得点击。代码在链接中,因为它是错误的,不起作用 我尝试下面的脚本,但我得到了 错误: 未捕获异常 带有消息的“Zend_Pdf_异常” '页面已附加到

我正在尝试合并2个PDF,一个在我的服务器上(不是动态生成的),另一个在合并之前生成,并且没有保存在服务器上的任何位置(我只是希望我的客户端下载它)。所以我只有pdf的内容。两种PDF格式相同(A4)

合并的文件将有2页,并且不会保存在服务器上

因为我使用的是Zend框架,所以我更喜欢它的解决方案(在网上找不到),还有什么建议吗

编辑:因为人们懒得点击。代码在链接中,因为它是错误的,不起作用

我尝试下面的脚本,但我得到了 错误:

未捕获异常 带有消息的“Zend_Pdf_异常” '页面已附加到一个文档,但 在另一个上下文中呈现


您是否尝试过使用合并工具合并它们

可以使用以下方法实现多个PDF与it的合并:

pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf

123.pdf将是生成的pdf。您可以将生成的PDF临时存储在服务器上,将其发送到浏览器,并在不再需要时将其删除。

好的,根据@Gordon在我的问题中的评论,我找到了一个解决方案

  • 您必须至少拥有Zend Framework 1.11(我在1.9中出现了第一个错误)(由于对该问题的第三条评论而找到)
  • 您必须
    从要合并的PDF中克隆
    页面,否则,您的应用程序将打印一个错误(自解释的错误)(这对于Zend_PDF来说非常有趣)
  • 静态PDF必须是PDF render()以字符串形式生成合并的PDF内容

    $extractor = new Zend_Pdf_Resource_Extractor();
    $clone_page_to_use_in_any_pdf = $extractor->clonePage($original_pdf->pages[0]);
    
    我就是这样做的

    希望这对大家都有帮助

    TJ

    就从马嘴里


    我合并PDF的经验:

    • Zend_Pdf对于大型编译速度慢且效率低
    • pdftk会丢失文档的书签,如果文档的大小大于合并的文档,则会崩溃
    • pdflib非常快速,可以保存书签,对于大型编译非常有效

    @Gordon:好吧,阅读链接上的页面>>我尝试了下面的脚本,但我得到了错误:未捕获的异常“Zend_Pdf_exception”和消息“页面附在一个文档上,但在另一个文档的上下文中呈现,我知道我讨厌“不起作用”问题,但说真的,在这里,您只需阅读……感谢您的澄清。在你的问题上尽量完整,而不是指责那些你要求帮助的人懒惰。不把所有的信息放在第一位是懒惰的。另外,尽管用户有错误,您是否尝试过那里给出的代码?我在谷歌上搜索了错误信息,@Gordon:我本来不应该提及它,因为这是一个错误(是的,我尝试了我在网上找到的一切;))我只是在展示,我做了研究和测试。只是想说明一下,我来这里不是为了一个预先消化的答案,就像现在的一群男人一样。我现在正在尝试1.11,看看它是否有效,让你知道。我现在是1.9。谢谢你的回答。不幸的是,我不能使用这个解决方案。1-我无法在服务器上安装任何东西(另一个人的工作很忙,2周前无法安装)2-最好不要在服务器上保存。请参阅,解决方案:)并且仅在您告诉我错误消息后才找到;)是的,但是你的例子没有回答这个问题;)它从相同的pdf中提取页面。在我看来,这是最好的解决方案!
    $extractor = new Zend_Pdf_Resource_Extractor();
    $clone_page_to_use_in_any_pdf = $extractor->clonePage($original_pdf->pages[0]);
    
    $extractor = new Zend_Pdf_Resource_Extractor();
    
    $page1 = $extractor->clonePage($pdf->pages[$templatePageIndex1]);
    $page2 = $extractor->clonePage($pdf->pages[$templatePageIndex2]);
    $page1->drawText('Some text...', $x, $y);
    $page2->drawText('Another text...', $x, $y);
    
    $pdf = new Zend_Pdf();
    $pdf->pages[] = $page1;
    $pdf->pages[] = $page2;