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

标签 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 很重要)。

最佳答案

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

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

看看the QPDF site at sourceforge

关于php - 为什么使用 mPDF 合并 PDF 文件后超链接丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16419074/

相关文章:

iphone - 如何在 iOS 上从 pdf 文件中提取给定页面?

jquery - "Direct link to any fancybox",但地址栏中有 URL

jquery - 如何使 jQuery 对话框使用超链接文本而不是按钮?

javascript - jQuery 从它自己的(自身)链接获取查询字符串

java - Itext 7 PdfException - "com.itextpdf.kernel.PdfException: Pdf indirect object belongs to other PDF document. Copy object to current pdf document."

php - 如何查看账单协议(protocol)是否有效或已取消?

PHP/Phinx - 插入经度/纬度导致 PDO MySQL 几何对象错误

php - mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

javascript - 数据表导出 pdf HTML 消息

PHP preg_match 使弯撇号与其他类型的弯引号不匹配。如何避免?