pdf文件内容分析工具简介(研究pdf标准好帮手)
前言:PDF文件标准诞生于20年前,从今天的视角来看,标准设计理念有些过时了;然而,pdf文件生态已经形成,尾大不掉吧。纵然有各种缺点,但是不可否认的事实:pdf是当今应用最广泛的版式文件。
pdf文件中内容是文本和二进制夹杂的混合物,直接查看文件内容难以理解。本人开发了一款工具,可以方便的查看文件内容,见下图:
组成pdf的基本元素是Dictionary。Dictionary包含header和body,header是文本的,描述tree状结构;body是二进制,解析过程由header决定。
pdf文件结构图:
解析pdf文件过程:
1 找到cross-reference table起始位置。
从pdf文件尾部向前搜索“startxref”,该关键字下一行就是cross-reference table起始位置。
2 解析cross-reference table,确定每个Dictionary对象的起始位置。
上图说明有32个Dictionary,并标明了每个Dictionary的起始地址。
3 解析Dictionary
上图前半部分是文本;后半部分是二进制,所以显示为乱码。这个Dictionary描述了一段压缩数据,并指明了压缩算法。
pdf文件的页组成
后记:作者研究pdf多年,但是pdf文件内容不易理解。借助于该工具,能极大的方便对pdf标准的理解,并快速定位问题。
专注C#、C++。擅长WPF、WinForm、QT等技术。
研究ofd多年,开发了一些列产品。
技术交流QQ群:565438497。