我必须合并一些带有超链接的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)。
答案 0 :(得分:0)
您可以轻松地将PDF与QPDF或PDFTK合并,这两者都是免费工具。它们不是PHP,但您可以轻松地为它们编写PHP包装并在Linux中运行。
我个人更喜欢QPDF,因为它保留了内容并且不会弄乱任何元标记,而PDFTK喜欢设置作者。
答案 1 :(得分:-1)
@ user1173016
您需要使用<=
for ($i=1;$i<=$pagecount;$i++) {
而不是<
for ($i=1;$i<$pagecount;$i++) {
因为你会在第二种情况下丢失第一页,如果$pagecount = 1
你将不会导入任何内容。