PDF(Portable Document Format)由Adobe公司所开发,是一种不论用何种类型的计算机均可阅读的文件格式。PDF文件包含一个PDF文档和其它支持数据。一个PDF文档包含一个或多个页面,每个页面包含与设备和分辨率无关的文字、图形和图像的任意组合,被称为页面描述。文档还可以包含一些只有在电子读物中才存在的信息,如超文本链接、声音和动画等。除了PDF文档之外,PDF文件中还包含一些其它信息,如:文件中使用的PDF规范的版本号,文件中重要结构的位置。
为了更好地理解PDF文件,可把PDF文件分解成四个部分。
第一部分是PDF的对象,PDF的对象是一组基本对象类型。这些类型绝大部分与PostScript语言使用的数据类型对应。PDF支持很多种基本的数据类型:布尔型、数字、字符串、字面名、数组、字典和流,另外还有一种空对象。在PDF文件中,经常给一些对象赋予一个标签供其它对象调用,这种有标签的对象称为间接对象。
第二部分是 PDF的文件结构。PDF的文件结构决定了对象在 PDF文件中的存储方式、访问方式和更新方式。后面将详细分析。
第三部分是 PDF的文档结构。PDF的文档结构指定了怎样用基本对象类型来表示 PDF的文档成分,包括:页面、注解、超文本链接、字体等。
第四部分是 PDF的页面描述。页面描述指的是页面上包含的与设备和分辨率无关的文字、图形和图像的任意组合。PDF的页面描述可不依赖于PDF的其它部分而被单独地解释。
1、PDF的文件结构
PDF的文件结构(即物理结构)包括四个部分:文件头、文件体、交叉引用表和文件尾。文件头指明了该文件所遵从的 PDF规范的版本号。它出现在 PDF文件的第一行。如%PDF-1.2,表示该文件符合PDF-1.2规范。
文件体由一系列的PDF间接对象(inDirectob Ject)组成。这些间接对象构成了PDF文件的具体内容如字体、页面、图像等等。
交叉引用表则是为了能对象接对象进行随机存取,而设立的一个间接对象地址索引表。文件尾声明了交叉引用表的地址,指明文件体的根对象(cata-log),还保存了加密等安全信息。根据文件尾提供的信息,PDF的应用程序可以找到交叉引用表和整个PDF文件的根对象,从而控制整个PDF文件。
2、PDF的文档结构
PDF的文档结构是PDF文件内容的逻辑组织结构。它反映了文件体中间接对象间的等级层次关系。PDF的文档结构是一种树型结构。树的根节点就是PDF文件的根对象。根节点下有四个子树:页面树(Pages tree)、 书签树(outline tree)、线索树(Article tree)、名字树(Named Destination)。其中在页面树中,所有页面对象都在树的叶子节点,树中的子节点将继承父节点的各属性值作为相应属性的缺省值。书签树中则按树型层次等级关系将书签(Book mark)组织起来。书签建立了书签名与一个具体页面上的位置的关联,它使得用户可以按书签名字来访问文档的内容。由于书签可以有层次,能用来组织文档的目录,所以有时又将书签树称作目录树。线索树则将文章线索及线索下的文章块(Article head)按树型结构组织起来进行管理。
全部评论