最近在做PDF文件格式解析相关工作,总结留下记录。

个人比较崇尚乔新亮老师一句话,分享带来快乐,交流创造价值。

PDF数据存储格式

首先有个对PDF文件格式整体的一个概念,PDF文件格式如下图所示:

pdf文件存储格式(PDF文件格式解析一)(1)

简单PDF存储格式

PDF文件版本号只会占文件头的第一行;

PDF数据内部包含内容对象、资源对象等,在PDF文件中一般占比最大;

交叉引用表定义对象序号、对象的绝对文件位置、对象状态(是否被删除);

文件尾标明交叉引用表的绝对位置、文件一些全局属性、上个交叉引用表位置、根结点、信息节点等信息;

PDF添加内容后存储格式

既然有上个交叉引用表就说明这个结构并不是一成不变的,如果对这个PDF进行一次添加则会变成下图所示结构。

pdf文件存储格式(PDF文件格式解析一)(2)

多次编辑后PDF存储格式

后续如果多次修改会有很多个PDF数据块、交叉引用表、文件尾.

,