我们有一个项目,我们合并不同的pdf来创建目录。 现在它运行在myokyawhtun/pdfmerger上,运行良好,但它没有在杂技中设置链接。
我们已经尝试了我们发现的不同库(纯 PHP,我们无法通过 shell-exec 或类似内容从命令行安装或调用应用程序在这个网络空间上,所以没有 gs(,即使我们只是通过 fpdi 导入 pdf 文件并重新保存它们,超链接也会丢失。
是否有任何(纯PHP(库可以保留文件内的链接?还是我们错过了一些特殊设置?
我们尝试过:
- Setasign/FPDI
- IIO/libmergepdf
- Jurosh/pdf-merge
当前库的示例代码(myokyawhtun/pdfmerger(:
require('vendor/myokyawhtun/pdfmerger/tcpdf/tcpdf.php');
require('vendor/myokyawhtun/pdfmerger/tcpdf/tcpdi.php');
require('vendor/myokyawhtun/pdfmerger/PDFMerger.php');
$pdf = new PDFMergerPDFMerger;
foreach($sourcePdfs as $file)
{
$pdf->addPDF($pdfDir.'/source/'.$file);
}
$pdf->merge('download', 'Download.pdf');
所有提到的库都使用 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();