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。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性