【问题标题】:Why hyperlinks lost after merging PDF files using mPDF?为什么使用 mPDF 合并 PDF 文件后超链接丢失?
【发布时间】: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


【解决方案1】:

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

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

看看the QPDF site at sourceforge

【讨论】:

  • 主要问题是我在 Linux 上为基于 Windows 的 Web 服务器开发了一个单元。 mPDF 很好,但我可以弄清楚为什么它会杀死超链接。
【解决方案2】:

@user1173016

你需要使用&lt;=

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

而不是&lt;

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

因为在第二种情况下你会丢失第一页,如果$pagecount = 1 你什么都不会导入。

【讨论】:

    猜你喜欢
    • 2019-02-08
    • 2018-10-12
    • 2020-01-31
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 2018-12-01
    相关资源
    最近更新 更多