3

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

4

2 回答 2

0

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

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

查看sourceforge 的 QPDF 站点

于 2013-05-07T20:16:32.257 回答
-1

@user1173016

你需要使用<=

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

代替<

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

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

于 2013-12-10T08:52:53.137 回答