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)解决方法