PDFMerger 与 FPDI-PDF-PARSER

Posted

技术标签:

【中文标题】PDFMerger 与 FPDI-PDF-PARSER【英文标题】:PDFMerger with FPDI-PDF-PARSER 【发布时间】:2017-09-13 02:21:47 【问题描述】:

正在使用 FPDI PDF 文件合并。但是,我在尝试合并 1.5 及更高版本的 PDF 文件时遇到了以下问题。以下是我收到的错误:

本文档 (doc.pdf) 可能使用了一种压缩技术,即 FPDI 附带的免费解析器不支持。 (看 https://www.setasign.com/fpdi-pdf-parser了解更多详情)

我继续访问该链接,该链接建议使用商业插件 fpdi-pdf-parser。该文件已包含在其余文件中。并且在安装步骤中,据说不需要进行其他步骤,但我仍然遇到同样的错误。

值得注意的是,我正在使用以下 PDF 合并(反过来,它使用 FPDI 库)

https://github.com/myokyawhtun/PDFMerger/blob/master/PDFMerger.php

我不确定如何使用这个“fpdi-pdf-parser 插件”,它被宣传为解决我的 PDF 1.5 问题。我错过了什么?

【问题讨论】:

用文本编辑器打开你的pdf文件并将内容粘贴到这里。 @anwerjunaid pdf 文件的内容无关紧要,因为我的问题是多个 pdf 文件,无论使用 PDFMerger 将内容合并在一起。 不是内容,您可能需要检查文件的二进制部分。生成pdf的方式有很多种。 官方文档setasign.com/products/fpdi-pdf-parser/details有压缩pdf的例子@ @AgamBanga 我没有发现这个例子很清楚,特别是我没有php经验。 【参考方案1】:

您声明您正在使用 PDFMerger,但查看 project page 显示:

支持 PDF 1.5 和 PDF 1.6

FPDF 和 FPDI 库被带有 TCPDI 扩展和解析器的 TCPDF 取代。

所以看起来,特别是因为它们不支持 PDF 版本 >1.4,PDFMerger 不再使用 FPDF 和 FPDI。

为了测试这个我downloadedPDFMerger(注意这包括一份TCPDF),稍微修改了示例代码,并使用标记为版本1.7的PDF运行它/strong>:

<?php

include 'PDFMerger.php';

$pdf = new PDFMerger;

$pdf->addPDF('43451941a.pdf', '1'); // page 1 from first file.
$pdf->addPDF('43451941b.pdf', '5'); // page 5 from second file.

$pdf->merge('browser'); // send the file to the browser.

结果是,在我的网络浏览器中,我得到了一个两页的 PDF 文件,正如预期的那样。

据我所知,FPDF/FPDI 根本不需要!

只需下载并使用 PDFMerger。

【讨论】:

我注意到 PDFMerger 会丢失内容,因为它将连接的 PDF 视为图像文件

以上是关于PDFMerger 与 FPDI-PDF-PARSER的主要内容,如果未能解决你的问题,请参考以下文章

easy-pdf-merge报错(例如java: command not found)解决方法

LDAP 与 MYSQL .. JA-SIG CAS 与 LDAP 与 CAS 与 MySQL

python网络编程基础(线程与进程并行与并发同步与异步)

=与==&与&&| 与 || 的区别

与 0 进行比较与与某个值进行比较是不是更快?

三.工具与市场-债券与债务股票与公司