PDF 可以在 Chrome 中呈现,但不能在 Acrobat 中呈现

2024-04-12

%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)中打开,但在 Adob​​e Acrobat (Reader) 中崩溃。 Ghostscript 也认为它很好。请注意,它假定换行符为 CRLF。

我阅读了 PDF 规范中与基本 PDF 相关的部分,似乎上面的语法遵循它。为什么 Adob​​e 不喜欢它?

这是一个链接 http://venus.tandola.com/349f7.pdf到 PDF。请注意它如何在 Chrome 中打开,但在 Adob​​e Acrobat 中崩溃。 (此 PDF 使用 LF 进行换行,并且有一个Resources页面上的词典,基于评论。)


Acrobat 有以下 2 个怪癖,两者都不符合规范:

  1. 如果外部参照流具有单个过滤器,则不得使用数组。所以/Filter[/FlateDecode]不会起作用,并且/Filter/FlateDecode将要。这可能适用于任何流对象,不确定。
  2. 外部参照流必须使用FlateDecode筛选。ASCIIHexDecode行不通的。不需要预测器。

这是一个链接 http://venus.tandola.com/v3n94.pdf到上面的 PDF,已针对 Acrobat 进行了修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PDF 可以在 Chrome 中呈现,但不能在 Acrobat 中呈现 的相关文章