在 PHP 中合并 pdf 文件并在其中保留网络链接

我们有一个项目,我们在其中合并不同的 pdf 以创建目录。现在它在 myokyawhtun/pdfmerger 上运行,运行良好,但它不保留在 acrobat 中设置的链接。

我们尝试了我们找到的不同库(纯 PHP,我们无法通过 shell-exec 或此网络空间上的类似工具从命令行安装或调用应用程序,所以没有 gs),即使我们只是通过 fpdi 导入 pdf 文件并重新保存它们,超链接会丢失。

是否有任何(纯 PHP)库可以保留文件内的链接?还是我们错过了一些特殊设置?

我们尝试过:

  • setasign/fpdi

  • iio/libmergepdf

  • jurosh/pdf-合并

当前库的示例代码(myokyawhtun/pdfmerger):

require('vendor/myokyawhtun/pdfmerger/tcpdf/tcpdf.php');

require('vendor/myokyawhtun/pdfmerger/tcpdf/tcpdi.php');

require('vendor/myokyawhtun/pdfmerger/PDFMerger.php');


$pdf = new \PDFMerger\PDFMerger;


foreach($sourcePdfs as $file)

{

    $pdf->addPDF($pdfDir.'/source/'.$file);

}


$pdf->merge('download', 'Download.pdf');


HUH函数
浏览 199回答 1
1回答

德玛西亚99

所有提到的库都在后台使用 FPDI,它根本不支持页面内容流之外的内容,例如链接或任何其他注释类型。我们(FPDI 的作者)还提供非免费产品,这些产品在另一个层面上工作,允许您在连接文档时保留所有注释,包括链接和表单。这可以通过SetaPDF-Merger组件实现:$merger = new SetaPDF_Merger();foreach($sourcePdfs as $file) {    $merger->addFile($pdfDir . '/source/' . $file);}$merger->merge();$document = $merger->getDocument();$document->setWriter(new SetaPDF_Core_Writer_Http('Download.pdf'));$document->save()->finish();
打开App,查看更多内容
随时随地看视频慕课网APP