【问题标题】:Do Indirect Objects need to be in numerical order?间接对象​​是否需要按数字顺序排列?
【发布时间】:2015-11-12 20:04:59
【问题描述】:

我在处理 PDF 文档的一些问题时遇到了问题,一些 PDF 似乎存在的问题之一是“间接对象”的排序(自上而下)中的顺序不正确和较大的数字差距

也就是说,比如我有一个PDF,它的结构是这样的:

%PDF-1.6
300 0 obj 
<< indirect object >>
endObj
313 0 obj 
<< indirect object >>
endObj
307 0 obj 
<< indirect object >>
endObj

..... et c... 

一些间接对象,其标识符由 3 位数字组成,例如 300 - 320 用于我们的目的。这些在它们自己的 300-320 范围内都出现故障。在这个混乱中的某个地方还有一个格式良好的%%EOF

..... 然后一个数字序列开始。我们会说 1 到 100

1 0 obj 
<< indirect object >>
endObj
2 0 obj 
<< indirect object >>
endObj
3 0 obj 
<< indirect object >>
endObj

.... 以此类推,最终以 EOF 序列结束:

startxref
116
%%EOF

添加一个转折。 1-100 的顺序是正确的数字顺序,与前面 300-320 段的随意“抓包”顺序不同。 101 到 299 之间的 id #s 甚至根本不存在于文档中

另一个转折:该文档一年多没有变化,最近(过去几天),Adobe Reader 无法查看该文件,因为它“已损坏且无法修复”

提前致谢!

【问题讨论】:

  • 该文件一年多没有变化,最近(最近几天),Adobe Reader 无法查看该文件,因为它“已损坏且无法修复” i> - 您最近更新了 Adob​​e 阅读器吗?
  • 有一些公认的恶作剧:创建和发送缓冲区流是为了混淆“实际文件位置” - 问题的核心是通过此文件处理导致文件格式错误 - 在我对这个问题的研究,我注意到 OG 问题的问题并认为它是可疑的 - 但在阅读规范和测试过程之后 - 这不是问题的间接对象顺序/pdf 程序集,而是缓冲流的糟糕处理。我还学到了很多关于我真正关心的 pdf 文件组合的知识

标签: pdf pdf-generation


【解决方案1】:

在规范中找到它。

3.2.9 间接对象

一个正整数对象编号。间接对象​​通常有编号 在 PDF 文件中按顺序排列,但这不是必需的;目的 数字可以按任意顺序分配

http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/pdf_reference_1-7.pdf

【讨论】:

    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多