我正在尝试读取一个XRef流对象,但是有些东西不对劲。这是我的对象:
<<
/DecodeParms << /Columns 5/Predictor 12 >>
/Filter /FlateDecode
/ID [<9597C618BC90AFA4A078CA72B2DD061C><48726007F483D547A8BEFF6E9CDA072F>]
/Index [124332 848]
/Info 124331 0 R
/Length 137
/Prev 8983958
/Root 124333 0 R
/Size 125180
/Type /XRef
/W [1 3 1]
>>我读取流的137个字节,通过zlib解压,得到5088个字节。这是未压缩流(十六进制转储-C输出)的开始:
00000000 02 01 00 00 10 00 02 00 00 27 ec 00 02 00 00 01 |.........'......|
00000010 f4 00 02 00 00 01 f7 00 02 00 00 04 5b 00 02 00 |............[...|
00000020 00 02 68 00 02 00 00 0b ac 00 02 00 00 0f e5 00 |..h.............|
00000030 02 00 00 0e 93 00 02 00 00 0d 14 00 02 00 00 0d |................|我不理解的是每个条目应该有5个字节: /W 1 3 1表示1+3+1=5字节;但是流的长度5088不能被5整除。此外,我意识到5088可以被6: 5088/6=848整除,这是/Index键的第二个值确认的条目数量。在第二个入口读取保持1 3 1方案的流也是不可能的(字节0xEC不是有效的入口类型)。我的错误在哪里?
非常感谢你的帮助。
发布于 2017-04-12 21:05:16
解压缩后,每行有6个字节:1个字节用于预测,5个字节用于‘预测’数据。
在应用预测器之后,您将获得实际数据。
https://stackoverflow.com/questions/43367544
复制相似问题