首页 >pdf操作 > 内容

PDF结构分析

2023年8月14日 21:27

一、 简单了解PDF

1PDF格式

一个PDF文档从根本上来说是一个8字节序列。 其实PDF格式和我们已经熟知的HTML,XML等结构化的文件格式一样,包含有关键字,分隔符,数据等等。不同的是PDF文件是按照二进制流的方式保存的,而html文件则是可读的文本方式保存的。

2PDF规范的发展

PDF规范的6次升级:

1.11995 加入了文档加密(40字节),线索树,名字树,链接,设备独立色彩资源。

1.21996 表单, 半色调屏幕,和其他的一些高级色彩特性, 对中文,日文和韩文的支持

1.32000 数字签名, 逻辑结构, JavaScript, 嵌入式文件,Masked Images, 平滑阴影, 支持 CID字体的附加色彩。

1.42001 文件加密 (128 字节), 标签式 PDF, 访问控制,透明,元数据流

1.52003 文档加密 (公钥), JPEG 2000 压缩,可选的内容组,附加的注解类型

1.62005 文档加密 (AES),增加最大文件支持,加入3D支持,额外的注解类型

3PDF文件的基本组成

这四部分分别为:

l 文件头,指明了该文件所遵从的PDF规范的版本号,它出现在PDF文件的第一行。

l文件体,PDF文件的主要部分,由一系列对象组成。

l交叉引用表,为了能对间接对象进行随机存取而设立的一个间接对象的地址索引表。

l文件尾,声明了交叉引用表的地址,即指明了文件体的根对象(Catalog),从而能够找到PDF文件中各个对象体的位置,达到随机访问。另外还保存了PDF文件的加密等安全信息

4PDF文档的逻辑结构PDF

文件尾(Trailer),说明根对象的对象号,并且说明交叉引用表的位置,通过对交叉引用表的查询可以找到目录对象(Catalog)。这个目录对象是该PDF文档的根对象,包含PDF文档的大纲(outline)和页面组对象(pages)引用。大纲对象是指PDF文件的书签树;页面组对象(pages)包含该文件的页面数,各个页面对象(page)的对象号。

页面(page)对象作为PDF中最重要的对象,包含如何显示该页面的信息,例如使用的字体,包含的内容(文字,图片等),页面的大小。里面的信息可以直接给出,当然里面的子项更多的是对其他对象的引用,真正的信息存放在其他对象里面。页面中包含的信息是包含在一个称为流(stream)的对象里,这个流的长度(字节数)必须直接给出或指向另外一个对象(包含一个整数值,表明这个流的长度)

二、 文件结构

1.PDF的基础语法

文件的第一行是文件头,指明了该文件所遵从的PDF规范的版本号,它出现在PDF文件的第一行。

一个对象的第一行一般有两个数字和关键字“obj”。例如:

3 0 obj

<<

/Type /Pages

/Count 1

/Kids [4 0 R]

>>

endobj

第一个数字称为对象号,来唯一标识一个对象的,第二个是产生号,是用来表明它在被创建后的第几次修改,所有新创建的PDF文件的对象号应该都是0,即第一次被创建以后没有被修改过。上面的例子就说明该对象的对象号是3,而且创建后没有被修改过。

对象的内容应该是包含在<<和>>之间的,最后以关键字endobj结束.

2.PDF的解析过程

3.PDF的简单案例

%PDF-1.0

文件头,说明符合PDF1.0规范

1 0 obj

<<

/Type /Catalog

/Pages 3 0 R

/Outlines 2 0 R

>>

endobj

Catalog对象(根对象)

/Type /Catalog说明该对象的类型为/Catalog/Pages 3 0 R,这里/Pages指的是这个根对象包含的/Pages的目标是对象号为3的对象,3 0 R的意思是对对象3的引用。

2 0 obj

<<

/Type /Outlines</


参考文章:https://blog.csdn.net/P876643136/article/details/79449060

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,在此表示感谢。

特别提醒:

1、请用户自行保存原始数据,为确保安全网站使用完即被永久销毁,如何人将无法再次获取。

2、如果上次文件较大或者涉及到复杂运算的数据,可能需要一定的时间,请耐心等待一会。

3、请按照用户协议文明上网,如果发现用户存在恶意行为,包括但不限于发布不合适言论妄图

     获取用户隐私信息等行为,网站将根据掌握的情况对用户进行限制部分行为、永久封号等处罚。

4、如果文件下载失败可能是弹出窗口被浏览器拦截,点击允许弹出即可,一般在网址栏位置设置

5、欢迎将网站推荐给其他人,网站持续更新更多功能敬请期待,收藏网站高效办公不迷路。

      



登录后回复

共有0条评论