我正在尝试使用 FPDI 将现有 PDF(以其他方式创建)添加到使用 FPDF 创建的 PDF 中。它似乎适用于大多数 PDF,但我收到以下错误:

FPDF error: Unable to find xref table.

经过一些测试,我发现如果我使用 1.4 或更低版本的 PDF 版本(Acrobat v5 或更低版本),它似乎可以工作。查看该文件似乎是因为 PDF 格式不同。

有解决方法或解决方案吗?我大概有 10 000 多个用户上传的 PDF,其中一些是新的,一些则不能。同样令人烦恼的是 FPDI 只是死掉而不是导致某种错误,甚至返回 false

我现在能想到的唯一解决方案是解析 PDF 文件的第一行以确定版本,并仅添加可以使用的版本。

编辑:

我还在 Zend_Pdf 中尝试过这一点,使用 Zend Framework 附带的演示文件得到了以下结果:

Fatal error: Uncaught exception 'Zend_Pdf_Exception' with message 'Cross-reference streams are not supported yet.' in /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf/Parser.php:331
Stack trace:
#0 /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf/Parser.php(455): Zend_Pdf_Parser->_loadXRefTable('116')
#1 /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf.php(297): Zend_Pdf_Parser->__construct('/Volumes/Docume...', Object(Zend_Pdf_ElementFactory_Proxy), true)
#2 /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf.php(250): Zend_Pdf->__construct('/Volumes/Docume...', NULL, true)
#3 /Volumes/Documents/temp/ZendFramework-1.7.7/demos/Zend/Pdf/demo.php(37): Zend_Pdf::load('/Volumes/Docume...')
#4 {main}
  thrown in /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf/Parser.php on line 331

大于 1.4 的 PDF 无法解析吗?

有帮助吗?

解决方案 4

我发现,使用 FPDI PDF分析器的商用版本解决我的问题。我已经使用了一年了,还没有它couln't解析PDF文件的任何(除非PDF是腐败或者有别的奇怪的事情)。

其他提示

可以使用与FPDI TCPDF,就会产生和读取(与FPDI)版本1.7的PDF文件。

请参阅 TCPDF - 对PDF PHP类


修改

我最近一直在质疑使用各种版本和PDF格式与FPDI和TCPDF的问题,我可以证实,PDF版本以上1.4是碰运气,有趣的事情是,我有很多工作1.7 PDF文件,并且工作在1.5约50/50和1.6。

我工作围绕这一问题通过将所有无法使用的PDF文件使用GhostScript的,你可以在命令行exec到1.4。从GhostScript的ps2pdf14文件夹使用lib

我刚刚发布了两个项目(TCPDI / tcpdi_解析器, ,分别基于 FPDI 和 tcpdf_parser),它们与 TCPDF 6(和 FPDF_TPL)一起使用来导入 v1.4 以上的 PDF(到目前为止已测试到 1.6,但一旦我找到 1.7 PFD,我将确保它可以与 1.7 一起使用)测试它!)而不需要任何商业插件。基本安装和使用说明可以在 TCPDI 自述文件;请随意尝试并通过 Github 跟踪器报告任何问题。

Setasign是提供一个PDF解析器为商业附加来FPDI。我们没有烦恼解析PDF文件备份到1.7版本,到目前为止使用新的解析器。

为symfony1.2,我用这个LIB转换> 1.4 https://packagist.org/packages/xthiago/pdf-version-converter

如果您有Acrobat PDF格式的作家,你可以操纵作业设置,让您打印/ savingAs是对PDF 1.4兼容的PDF文件。对于微小的原因,我需要这样的产品,它似乎并不值得100欧元获得商业版本是版本不兼容大于1.4。

我的团队已经删除代码的某些部分。我们从添加水印到PDF停止代码。这个问题解决了我们。 PDF> = 1.5

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top