【发布时间】:2013-05-01 09:48:05
【问题描述】:
我必须合并一些带有超链接的 pdf 文件。与 mPDF 合并很好,但输出文件中没有超链接!只剩下文字了。
require_once('./mpdf/mpdf.php');
$mpdf = new mPDF('utf-8', 'A4', '8', '', 10, 10, 7, 7, 10, 10);
$mpdf->SetImportUse();
$pagecount = $mpdf->SetSourceFile('./static_files/01_file.pdf');
$tplId = $mpdf->ImportPage(1);
$mpdf->UseTemplate($tplId);
$mpdf->WriteHTML();
$pagecount = $mpdf->SetSourceFile('02_SourceFile.pdf');
for ($i=1;$i<$pagecount;$i++) {
$mpdf->AddPage();
$tplId = $mpdf->ImportPage($i);
$mpdf->UseTemplate($tplId);
$mpdf->WriteHTML();
}
$pagecount = $mpdf->SetSourceFile('./static_files/03_file.pdf');
for ($i=1;$i<=$pagecount;$i++) {
$mpdf->AddPage();
$tplId = $mpdf->ImportPage($i);
$mpdf->UseTemplate($tplId);
$mpdf->WriteHTML();
}
$mpdf->Output('Output.pdf', '', 'F');
文件 01_file.pdf 和 03_file.pdf 是静态的(它们似乎是使用 Acrobat 或 LibreOffice 等桌面工具创建的),而 02_SourceFile.pdf 是由 tcpdf 创建的。他们自己的所有三个文件都包含带有活动超链接的页面,但合并后没有活动超链接,只有每个文件的标题文本。
怎么了?或者如何使用其他 PHP 工具合并 pdf 文件(重要的是只使用跨平台工具和首选 PHP)。
【问题讨论】:
-
我找到了一个脚本,它实现了对 FPDI 的链接支持,它在 mPDF 中使用,这是我目前找到的 PHP 的最佳解决方案。这里是:link 现在我正在研究如何使它与 mPDF 一起工作,所以需要任何帮助。
-
我知道这已经很老了,但如果有人需要它,你需要在你的 mPDF 安装的根目录中创建一个新文件,你可以随意调用它。在其中包含一次文件 mpdf.php 并从上面提供的链接中复制类 FPDI_with_annots (gist.github.com/andreyvit/2020422#file-fpdi_with_annots-php) 修改类,使其扩展 mPDF 而不是 FPDI。现在,当您想使用 mpdf 时,调用新创建的文件并使用 fpdi_with_annots 类而不是 mPDF。像通常使用 mPDF 一样使用它,瞧,它可以工作并且您的链接被保留。
标签: php pdf hyperlink pdf-generation mpdf