什么原因导致pdf中的“图像数据不足”

时间:2010-10-04 18:03:27

标签: python pdf-generation pypdf

我有一个Python程序(使用pyPDF),它合并了许多不同的PDF文档。有时,生成的pdf很好,除了中间的一些空白页面。当我使用Acrobat Reader查看这些文档时,收到一条错误消息,指出“图像数据不足”。当我使用FoxIT Reader查看文档时,我得到一些空白页面和一个munged图像。

创建空白页面的PDF的唯一奇怪之处在于它似乎是PDF版本1.4,而PyPdf似乎创建了PDF版本1.3的文件。

1)版本问题听起来像是我问题的根本原因吗?

2)有没有办法让PyPdf正确处理这个问题?

3 个答案:

答案 0 :(得分:2)

这可能与Windows有关,实际上与.pdf文件无关。

http://support.microsoft.com/kb/2506795

祝你好运!

答案 1 :(得分:2)

我遇到了这个问题,并且能够通过在十六进制编辑器中与PyPDF并排查看原始pdf来解决这个问题。

问题似乎是PyPDF实际上留下了一个字节 - 看起来可能是每个图像流中的第一个字节丢失了。当我将字节添加到PyPDF文件时,pdf打开正常,没有错误。

答案 2 :(得分:1)

我怀疑图像XObject流是格式错误的。无法访问带有问题的PDF,所有大多数人都可以猜到。

例如,如果pdf信息表示图像宽10像素,高10像素,每像素8位,则流应解压缩为100字节。如果它未压缩到不到那个,我会发现一个像你所看到的错误。

对于你碰巧使用的任何图像格式,这可能是pypdf中的一个错误。

IIRC,PDF中没有扫描线填充,也没有关注字边界,但如果需要,最后一位填充到一个字节。混乱可能很容易导致太多字节,这不是问题。

它也可能是一个糟糕的色彩空间。如果你有一个索引的彩色图像(gif),并且它们将它转换为RGB图像的一半,但是使用原始的索引颜色字节,你会得到一个可能期望每像素n * 3位的流,但仅限于每像素有n位。

这可能是一个在pypdf中修复的旧bug。您使用的是当前版本吗?