间接对象​​需要按数字顺序排列吗?

时间:2015-11-12 20:05:00

标签: pdf pdf-generation

我在解决PDF文档的一些问题时遇到了麻烦,而且一些PDF似乎有一些错误的排序和“间接对象”的排序(自上而下)中的大数值差距

也就是说,例如,我有一个结构如下的PDF:

   for (int i = 0; i < e; i++) {
        ClientConn c = nicks.get(recipient);
        c.sendMsgCC(msg.getBytes());
        System.out.println("message sent: " + msg + " to client " + recipient);
    }

一些间接对象,标识符由3位数字组成,例如300 - 320用于我们的目的。这些在他们自己的300-320范围内发生故障。在这个混乱中的某个地方是一个格式良好的%PDF-1.6 300 0 obj << indirect object >> endObj 313 0 obj << indirect object >> endObj 307 0 obj << indirect object >> endObj ..... et c... 以及

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

%%EOF

....等等,最终以EOF序列结束:

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

添加扭曲。 1-100的顺序是正确的数字顺序,不同于前300-320段的随意“抓包”顺序。 101到299之间的ID #s根本没有出现在文档中

还有一个问题:本文档保持一年不变,最近(最近几天),Adobe Reader无法查看该文件,因为它“已损坏且无法修复”

提前致谢!

1 个答案:

答案 0 :(得分:1)

在规范中找到它。

  

3.2.9间接对象

     

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

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