大家好,欢迎来到IT知识分享网。
PDF(Portable Document Format),便携式文档结构,是一种很有用的文档格式,其最大的特点是平台无关且功能强大(支持文字\图像\表单\链接\音乐\视频等)。做PDF的解析,首先要熟悉PDF文件的物理结构和逻辑结构。
PDF文件的物理结构可以分为以下几块:
1.文件头
2.文件体(PDF文件的主要部分,由一系列对象组成)
3.交叉引用表(为了能对简接对象进行随机存取而设立的一个间接对象的地址索引表)
4.文件尾(声明了交叉引用表的地址,即指明了文件体的跟对象(Catalog),从而能够找到PDF文件中各个对象的具体地址,达到随机访问。另外还保生存了PDF文件的加密等安全信息。)
如下图:
PDF文档的逻辑结构:
作为一种结构化的文件格式,一个PDF文档是由一些称为“对象”的模块组成的。并且每个对象都有数字标号,这样的话这些对象就可以被其他的对象所引用。
文件尾(Trail),说明对象的对象号,并且说明交叉引用表的位置,通过交叉引用表的查询可以找到对象目录(Catalog).这个目录对象是该PDF文档的根对象,包含PDF文档的大纲(outline)和页面组对象(pages)的引用。大纲对象是指PDF文件的书签数,页面组(pages)包含文件的页面数,各个页面对象(page)的对象号。
图如下:
页面(page)对象作为PDF中最重要的对象,包含如何显示该页面的信息,例如使用的字体,包含的内容(文字,图片等),页面的大小。当然里面的子项也可以是其他对象的引用。页面中信息是包含在一个称为(Stream)的对象里。这个流的长度(字节数)必须直接给出或指向另一个对象。
图如:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/33161.html