%PDF-1.7
4 0 obj
<</Type/ObjStm/N 3/First 14/Length 139>>
stream
1 0 2 41 3 76 <</Type/Catalog/Version/1.7/Pages 2 0 R>><</Type/Pages/Kids[3 0 R]/Count 1>><</Type/Page/MediaBox[0 0 200 200]/Parent 2 0 R>>
endstream
endobj
5 0 obj
<<
/Root 1 0 R
/ID[<7F1FE2C507E6DB4CB0787E660F2B0C65><2450E4E8FF5FC84380428886C0DD4C2F>]
/Size 6
/Index[1 5]
/W[1 4 1]
/Type/XRef
/Length 68
/Filter[/ASCIIHexDecode]
>>
stream
020000000400
020000000401
020000000402
010000000A00
01000000E500
endstream
endobj
startxref
229
%%EOF
上面的 PDF 在 Chrome(或 Edge)中打开,但在 Adobe Acrobat (Reader) 中崩溃。 Ghostscript 也认为它很好。请注意,它假定换行符为 CRLF。
我阅读了 PDF 规范中与基本 PDF 相关的部分,似乎上面的语法遵循它。为什么 Adobe 不喜欢它?
这是一个链接 http://venus.tandola.com/349f7.pdf到 PDF。请注意它如何在 Chrome 中打开,但在 Adobe Acrobat 中崩溃。 (此 PDF 使用 LF 进行换行,并且有一个Resources
页面上的词典,基于评论。)
Acrobat 有以下 2 个怪癖,两者都不符合规范:
- 如果外部参照流具有单个过滤器,则不得使用数组。所以
/Filter[/FlateDecode]
不会起作用,并且/Filter/FlateDecode
将要。这可能适用于任何流对象,不确定。
- 外部参照流必须使用
FlateDecode
筛选。ASCIIHexDecode
行不通的。不需要预测器。
这是一个链接 http://venus.tandola.com/v3n94.pdf到上面的 PDF,已针对 Acrobat 进行了修复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)