gpt4 book ai didi

php - 有没有办法让 FPDF/FPDI 或 Zend_Pdf 支持解析大于 1.4 的 PDF?

转载 作者:IT王子 更新时间:2023-10-29 00:08:48 24 4
gpt4 key购买 nike

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

FPDF error: Unable to find xref table.

经过一些测试,我发现如果我使用 1.4 或更低版本(Acrobat v5 或更低版本)的 PDF 版本,它似乎可以工作。查看文件似乎是因为不同的 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?

最佳答案

您可以将 FPDI 与 TCPDF 一起使用,它将生成并阅读(使用 FPDI)1.7 版 PDF。

TCPDF - PHP class for PDF .


编辑

我最近遇到了在 FPDI 和 TCPDF 中使用各种版本和格式的 PDF 的问题,我可以确认 1.4 以上的 PDF 版本是命中注定的,有趣的是我有很多工作 1.7 PDF,在 1.5 和 1.6 上工作大约 50/50。

我通过使用 GhostScript 将所有不可使用的 PDF 文件转换为 v1.4 来解决这个问题,您可以从命令行exec。使用 GhostScript lib 文件夹中的 ps2pdf14

关于php - 有没有办法让 FPDF/FPDI 或 Zend_Pdf 支持解析大于 1.4 的 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/660425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com