PDF文件格式概要解释
最后,文档可以包含高级程序,以致于使内容之间互相影响而改变。还可以包含一些标识及逻辑结构以便于搜索、编辑、或提取。
前面已经提过,文件是二进制储存。如果其具有符合特定规则时,就是字符文件。PDF的语法部分可以当字符文件读,但有很大一部分是二进制读取转化成其它编 码内容。PDF文件由四部分组成Header、Body、Cross-referencetable、Trailer。Heade说明PDF的版本 如%PDF?1. 6表示1.6的版本;Body是PDf对象的存储空间;Cross-referencetable是一个PDF对象的索引表;Trailer可以快速定位 某些特殊作用的对象。文件最后一行以%%EOF结束,倒数第二行表示索引表的位置偏移,最后第三行是startxref。
PDF数据类型可以分为八种:字典,数组,间接,布尔,数字,字符串,流,空对象。数组以[]配对;字典以<<>>配对;流以stream和endstream配对;间接以12 0 R形式出现,数子表示索引号,指向一个对象,0是通用设置,R表示这是间接数据类型。
索引表的组织结构是第一行以xref开始,第二行第一个表示索引起始值,第二数字表示连续索引的个数n。从第三行开始有n行个索引地址,第一个数字表示偏 移地址,第三位表示是否可用f不可n可用。startxref前面是一个trailer字典,如果里面有Prev元素表示还有一个索引表;Root表示 PDF对象树的根。
PDF对象一般常用的有Pages、Page、Resource、Image、Font、Color等。Pages包含若干个Page,如果递归下去就是 相对应的连续页面。Page包含资源(字体、颜色、图像等)和进行页面渲染的PostScript代码。对一些数据进行压缩存储需要算法的支持,常用的有 这几种:ASCII85Decode、LZWDecode、ASCIIHexDecode、FlateDecode、RunLengthDecode、 CCITTFaxDecode、JBIG2Decode、DCTDecode、JPXDecode等,它们可以多重使用。图片都会去掉文件头转换为参数保 存,图片数据保存为流。
%PDF?1. 4
1 0 obj
<< /Type /Catalog
/Outlines 2 0 R
/Pages 3 0 R
>>
endobj
2 0 obj
<< /Type Outlines
/Count 0
>>
endobj
3 0 obj
<< /Type /Pages
/Kids [ 4 0 R ]
/Count 1
4 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [ 0 0 612 792 ]
/Contents 5 0 R
/Resources << /ProcSet 6 0 R >>
>>
endobj
5 0 obj
<< /Length 35 >>
stream
… Page-marking operators …
endstream
endobj
6 0 obj
[ /PDF ]
endobj
xref
0 7
0000000000 65535 f
0000000009 00000 n
0000000074 00000 n
0000000120 00000 n
0000000179 00000 n
0000000300 00000 n
0000000384 00000 n
trailer
<< /Size 7
/Root 1 0 R
>>
startxref
408
%%EOF
还有下列更为详细一些的文章:
本文出自 传播、沟通、分享,转载时请注明出处及相应链接。
本文永久链接: https://www.nickdd.cn/?p=1940