2017-10-10 101 views
1

允许使用FlateDecode和PNG预测器编码的流的最后一个预测器行的列宽与所有其他行不一致吗?即它错过了一些数据?使用FlateDecode预测器和没有足够的数据编码的PDF流

想象一下,例如,一个已经使用Flate算法解码的流,得到105个字节。并使用参数<</Predictor 15 /Columns 10>>进行预测。

由于流具有105个字节,因此预测器可以解码10个包含10列的完整行,并且一行仅包含5列,即5列的数据丢失。应该将最后一行解码为只有5列的行,还是应丢弃最后5个字节,或者整个流是无效的?

我没有在PDF规范中找到任何东西,但我遇到了两个PDF文件,它们都有这样的流。

回答

0

由您决定如何处理无效流,PDF规范不处理无效数据。

例如,我们采取一切可以解码的数据,其余则以用0

+0

我知道,它是由实施者来决定做什么。但是,目前尚不清楚这是否是无效的PDF流,因为例如Adobe Acrobat的Preflight检查器说一切正常......许多CLI工具错误,而所有测试过的PDF查看器都能正常工作并显示*正确的事*。 – gettalong