在网络时代电子办公越来越受到青睐。在文件传输过程中PDF文档以小巧,便捷,正式成为许多电子办公开发人员的首选。虽然PDF文件比较流行但他的文件逻辑架构及表示文件元素的相关标记的知识介绍的却很少。在网络上我找了很长时间也仅仅只找到了PDF文件结构的简单描述,可对其本身详细标记却知之甚少。没有办法只能看看E文的PDF规范了。要学习PDF文件结构我个人认为你应该首先掌握些文件格式的知识,如:HTML等。这对于你理解PDF会有很大帮助。
一、PDF文件的基本组成:
一个PDF文件从大的方面来说分4个部分:
1、文件头,指明了该文件所遵从的PDF规范的版本号,它出现在PDF文件的第一行。
2、文件体,PDF文件的主要部分,由一系列对象组成。
3、交叉引用表,为了能对间接对象进行随机存取而设立的一个间接对象的地址索引表。
4、文件尾,声明了交叉引用表的地址,即指明了文件体的根对象(Catalog),从而能够找到PDF文件中各个对象体的位置,达到随机访问。另外还保存了PDF文件的加密等安全信息。
详细信息具体请看http://pdfhome.hope.com.cn/Article.aspx?CID=bf51a5b6-78a5-4fa3-9310-16e04aee8c78&AID=1f9242d7-e5ee-477b-a92c-89feceaa1795 中PDF文件结构分析。
接下来我想说一下PDF的相关标记。
文件头
%PDF–版本号 例:%PDF–1.0现在最高版本为1.7
2、文件体
文件体由一系列的间接对象组成(PDF基本对象)以后将介绍。
3、交叉参考列表
nnnnnnnnnn ggggg n eol 此形式是固定的。
nnnnnnnnnn为对象位置的偏移量 ggggg修改的号 n可以是f或者n F表示不被使用的,N表示可用的。Eol表示一行的结束一般由换行及回车组成。CARRIAGE RETURN (0Dh) 和 LINE FEED (0Ah)
4、文件尾
Trailer
<<
key1 value1
key2 value2 …
keyn valuen
>>
Startxref
Byte_offset_of_last_cross-reference_section
%%EOF