【发布时间】:2014-09-17 06:05:18
【问题描述】:
我的 php cli 应用程序使用 TCPDF 库创建 PDF。在大多数情况下,PDF 会成功创建,但有时创建的 PDF 会导致 adobe reader 弹出错误:'insufficient data for an image'。
我显然对这条消息进行了一些研究,但没有任何命名的原因或提供的解决方案与我的情况相关或解决问题。虽然 Adobe 产品是唯一会弹出错误的产品,并且其他 PDF 查看器可以打开损坏的文件并正确显示,但这并不意味着它是与 adobe 相关的问题。对于高级 PDF 编辑器,NITRO 9 可以显示损坏的文件,但同时会检测到问题并弹出警报。
通过使用 Nitro,我能够修复 PDF 文件。步骤是:从pdf中提取损坏的图像对象中的图像,然后将pdf文件中的图像替换为保存的图像...
触发错误/警报的特定图像不是一种类型(例如 jpg2000)。 BMP、png 和 gif 也触发了错误/警报。
我在 stackoverflow 上的一些类似主题中读到“XOBJECT 流”可能格式不正确?但是,我不知道如何检查。
我希望你们中的一个人知道去哪里找。
我也尝试在 TCPF 表单上寻找类似的主题,但创建者告诉主题启动者这是一个 adobe 问题或 pdf 问题,他无法帮助他们。
附加文件 我上传了两个 pdf 文件:一个带有损坏的“图像”,会触发错误 (naamloos1_bad.pdf),另一个是使用 Nitro 修复的 (naamloos1_fixed.pdf)。你可以下载它们here
我希望了解 PDF 文件类型的人可以比较这些并让我知道发生了什么问题的详细信息,以便我知道在我的代码和 TCPDF 库的代码中寻找什么来解决这个问题。
PDF 文件中右下角的图像是触发警报/错误的图像。
谢谢!
【问题讨论】: