文件结构可以分为四方面: 1、首部。用文本编辑器打开的时候就可以看到:%PDF-1.4 这样的字眼,其中最后一位就是PDF文件格式版本号,软件的版本号总要比文件格式的版本号高1,比如说Read 5能打开的内容就是4。 2、文件体。里面有若干个的obj来组成,OBJ这种形式: 30979 0 obj << /Linearized 1 /O 30982 /H [ 15061 25084 ] /L 9379963 /E 166967 /N 978 /T 8760262 >> endobj 第一个数字就是这个OBJ的顺序号,是为了便于在xref中查找,后面的0是为了区分不同的OBJ,后面就是关键字obj.下面的各行就是属性,/关键字 值 的形式。 3.索引表。 用来索引各个obj在文档中的起始位置,它的形式是: xref 0 211 0000000000 65535 f 0000000009 00000 n …… 0000087999 00000 n 4、文件尾。 trailer << /Size 211 /Root 2 0 R /Info 1 0 R /ID [ >> startxref 88019 %%EOF 其中0,211分别代表这个xref的obj的起始和终止序号。其中0这个是估计是为了程序中好处理所以加了这个(个人英文水平不行,有些地方看不明白),可以不加入这个。下面的各行就代表各个obj在这个文档的起始位置,其中第一串字符(10个)代表起始位置,中间的五个字符也是为了区分用的,现在基本上全为0,后面的字母有两种f代表删除的,n代表要使用的。后面的trailer是对整个xref的摘要,说明里面有多少个OBJ,读的时候从哪个OBJ开始解析,信息节点等,ID是为了让一些文件检索工具能够唯一区分文件。 |