PDF:应用程序接受的错误交叉引用流

时间:2017-05-05 09:16:42

标签: pdf

在Drawboard PDF中注释,它生成了这个奇怪的交叉引用流(除非我误解了,我会说错误):

/W = [1, 2, 0]
Data = [2, 1, 183, 248, 2, 0, 1, 88, 2, 0, 3, 245, 2, 0, 0, 21, 2, 0, 2, 7]

参考文献:

  

W数组中元素的值为零表示该值   流中不存在相应的字段,默认值   如果有值,则使用该值。

数据中的每个条目应该有1 + 2 + 0 = 3个字节,但显然不是这样 - 有5个条目有4个字节。我试过没有应用程序打开文件有问题,但我不知道如何在我的PDF库中处理这个问题。

1 个答案:

答案 0 :(得分:2)

由于每个4字节组的第一个字节是2,我假设您的数据已经应用了预测。解压缩后,如果应用预测器,您将获得5组3个字节。

更新:正如我正确假设的那样,外部参照流使用预测器来改善压缩(这只是文件中的示例外部参照流,因为所有其他流都遵循相同的模式):

92 0 obj
<<
  /DecodeParms <</Columns 3/Predictor 12>>
  /Filter /FlateDecode
  /ID [<1EBBF34ADD340749DCDB9CA0F9F0F8F8> <1EBBF34ADD340749DCDB9CA0F9F0F8F8>]
  /Index [48 1 89 4]
  /Info 2 0 R
  /Length 28
  /Prev 46782
  /Root 1 0 R
  /Size 93
  /Type /XRef
  /W [1 2 0]>>
stream
  xœcbÜþƒ‰1‚‰ù+ƒ(; +ª*
endstream
endobj 

解压后你有5组,每组4个字节。您必须应用预测器,否则解压缩的数据无效。应用预测器后,您将获得5组3个字节 这里没有关于PDF库的错误。