使用mPDF合并PDF文件后为什么超链接丢失?

时间:2013-05-07 12:28:38

标签: php pdf hyperlink pdf-generation mpdf

我必须合并一些带有超链接的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)。

2 个答案:

答案 0 :(得分:0)

您可以轻松地将PDF与QPDF或PDFTK合并,这两者都是免费工具。它们不是PHP,但您可以轻松地为它们编写PHP包装并在Linux中运行。

我个人更喜欢QPDF,因为它保留了内容并且不会弄乱任何元标记,而PDFTK喜欢设置作者。

查看the QPDF site at sourceforge

答案 1 :(得分:-1)

@ user1173016

您需要使用<=

for ($i=1;$i<=$pagecount;$i++) {

而不是<

for ($i=1;$i<$pagecount;$i++) {

因为你会在第二种情况下丢失第一页,如果$pagecount = 1你将不会导入任何内容。

相关问题