【发布时间】:2017-07-28 19:36:05
【问题描述】:
pdf ISO 32000-1 的第 7.5.5 节说
PDF 文件的预告片使符合要求的读者能够快速找到交叉引用表和某些 特殊物品。符合要求的读者应该从头开始阅读 PDF 文件。文件的最后一行应包含 只有文件结束标记,%%EOF。前两行应包含,每行一个,按顺序, 关键字 startxref 和解码流中从文件开头到文件开头的字节偏移量 最后一个交叉引用部分中的外部参照关键字。 startxref 行之前应有预告片 字典,由关键字预告片和一系列以双角括起来的键值对组成 括号 (>)(使用小于号 (3Ch) 和大于号 (3Eh))。
但是我发现this pdf 文件不遵循这个规则,虽然它可以被 pdfviewer 打开没有任何问题。具体来说,这个文件的最后5行是
trailer
<</Size 352/ID[<9257C760F49955A23047D72C37914E79> <82F1302E14912449A9BB43536F853CD6>]>>
startxref
116
%%EOF
显然这个预告片字典是不正确的,因为标准规定这个字典必须包含一个以Root 作为键的条目,而这个预告片没有。然后我发现偏移量 116 指向另一个外部参照表,它几乎位于文件的开头,然后是另一个确实包含 Root entry 的预告片。
xref
352 24
0000000016 00000 n
0000001914 00000 n
0000001980 00000 n
0000002147 00000 n
... ...
trailer
<</Size 376/Root 353 0 R/Info 351 0 R/ID[<9257C760F49955A23047D72C37914E79><82F1302E14912449A9BB43536F853CD6>]/Prev 4183097>>
【问题讨论】:
-
您想要比“用于生成它的软件不能生成 100% 兼容的 PDF”更具体的东西吗?
标签: pdf