前言 pdf是一种应用非常广的版式文档格式,已成为事实上的国际标准。关于pdf格式的文章汗牛充栋,本文也是关于pdf格式的文章,但是本文不是纸上谈兵;本人这几周一直研究pdf格式内容,不但对pfd格式的内容有所了解,同时也写了一款软件,可以方便查看pdf文件内容。使用该软件,同时结合pdf相关文章,可以很快掌握pdf格式内容。

软件截图: 软件下载地址 点我下载

pdf文件内容简要介绍

这里对pdf文件格式做个粗略介绍,只有了解了这些内容,才能知道如何使用该软件。

pdf文档总结构如下:

1)header:主要包含版本信息

2)tailer:pdf树结构的入口点。

3)交叉索引表;该表包含pdf每个obj在文件中的位置,根据该表,可以快速定位和加载obj的内容。对于大文件,不必一次加载所有的内容,只需加载当前页包含的obj即可。

4) body。 包含obj对应的内容。

pdf obj树状结构

要完成对pdf文件的分析和显示,首先需要构建pdf文件的obj的树状模型。这个树状模型的入口点就是trailer,trailer包含root元素(Catalog),其下包含Pages,Page。Page中包含内容和资源。

结合软件分析pdf文件格式

用该软件打开一个pdf文件,对照示例来分析。

1)pdf header: 

2)trailer和交叉引用表,

3)body 由一系列obj组成。每个obj由唯一编号,可根据编号定位到内容。

4)文档树状结构

页集是页的集合,pdf规范建议用平衡树来组织页,便于快速查找。

编程心得

1 不能严格按照pdf标准来分析pdf。

pdf文档应用非常广,生成pdf文件的软件非常多。不是所有的pdf文档都严格符合标准。所谓“林子大了,什么鸟都有“。所以开发软件要经过大量的pfd文档测试。

2 分析obj的内容

pdf索引表只给出了obj开始文件位置。obj一般包含dictionary和stream两部分。所以需要根据关键词来解析obj,这就需要有一定的技巧。dictionary开始和结束的关键字为“<<” 和">>",但是dictionary可能包含子dictionary。只靠关键字是无法确定dictionary的开始和结束位置的,需要一定的技巧。

 3 读取obj的效率。

不必一次加载所有的obj,可以采取按需加载。

后记 读取pdf文件的内容,在内存中构建obj树形结构,是下一步分析和显示pdf的基础。本人通过阅读相关资料,加上编写代码,实现了对pdf文件内容的分析。理论和实践相结合,就能快速的掌握相关知识。本软件可以方便的窥探pdf内部结构,希望该软件为你了解和开发pdf有所帮助。

pdf文件内容查看器 -- 采用wpf开发相关推荐

  1. pdf文件内容查看器 -- 采用wpf开发

    前言 pdf是一种应用非常广的版式文档格式,已成为事实上的国际标准.关于pdf格式的文章汗牛充栋,本文也是关于pdf格式的文章,但是本文不是纸上谈兵:本人这几周一直研究pdf格式内容,不但对pfd格式 ...

  2. ftp服务器在线查看文件内容,ftp服务器PDF文件在线查看的实现方法

    URL形式: // http://localhost:2692/PDFVIEWER/web/viewer.html?file=http://localhost:2692/TOV/DASystem/Ge ...

  3. python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  4. python中读取文件内容-深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  5. python读取pdf文件_深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  6. 教你如何编辑修改PDF文件内容

    PDF这种便携式的文档,因其独有的特性在现在的办公中应用越来越广,虽然这种文档经常遇见但是还有很多人对PDF内容的修改不是很清楚,下面就讲下怎么编辑修改pdf的文字. ​ 查看PDF文件通过阅读器就可 ...

  7. java文本检索pdf,pdfsearch pdf文件的关键字搜索引擎,采用lucene,pdfbox等技术实现的 Jsp/Servlet 256万源代码下载- www.pudn.com...

    文件名称: pdfsearch下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 22284 KB 上传时间: 2013-04-07 下载次数: 8 提 供 者: ...

  8. linux命令看文件内容,Linux文件内容查看相关命令

    1.more命令 在Linux中,more命令是一个基于vi编辑器的文本过滤器,它能以全屏的方式按页显示文本文件的内容,more里面内置了一些快捷键. (1)命令语法 more(选项)(参数) (2) ...

  9. python怎么读取pdf文件_Python解析并读取PDF文件内容的方法

    本文实例讲述了Python解析并读取PDF文件内容的方法.分享给大家供大家参考,具体如下: 一.问题描述 利用python,去读取pdf文本内容. 二.效果 三.运行环境 python2.7 四.需要 ...

最新文章

  1. c++编写手机小游戏代码_只需22行代码,用python编写自己的小游戏
  2. PAT甲级1100 Mars Numbers:[C++题解]进制位、使用stringstream类读入
  3. operamasks-ui2.0 +MVC4.0+EF5.0实战之一 开篇及布局控件介绍
  4. Windows平台使用Gitblit搭建Git服务器图文教程
  5. Oracle分析函数六——数据分布函数及报表函数
  6. 使用 bat 文件管理计算机服务
  7. 在MSP432 LaunchPad上运行MicroPython
  8. [导入]Myeclipse中XML不出智能提示
  9. 大多数微型计算机都是基于,基于PCI总线数据采集系统的设计
  10. matlab图例双字体设置
  11. C语言控制51单片机音乐报告,51单片机_音乐_天空之城_C语言
  12. 搭建moon服务器,实现zerotier飞速穿透
  13. 如何下载股票的历史收盘价 股票历史收盘价下载方法
  14. php后台登录页,后台登录页面模板源码
  15. radiogroup多选_为何多组RadioGroup 里面的RadioButton 会出现多选状态​?
  16. 数据表格之多表头设置
  17. 手机“隐藏功能”揭秘
  18. 获取视频网站上视频的缩略图以及其他信息
  19. TensorFlow报AttributeError: module tensorflow has no attribute io
  20. 与幼儿园小朋友一起过感恩节心得

热门文章

  1. 日本价值链促进会(IVI)秘书长西冈靖之:日本工业互联网发展情况
  2. 转载:Springboot全局事务处理
  3. 大闹天竺里的机器人_王宝强的电影《大闹天竺》都植入了哪些品牌?
  4. js基础笔记(持续更新)
  5. daimadaima
  6. 计算机相关的外文翻译,计算机外文翻译
  7. 企业如何选购防火墙?防火墙保护企业安全
  8. Object-C中的Category
  9. 用html怎么制作风车,css3 animation实现风车转动
  10. IDEA创建maven项目失败:pom文件为空,没用src目录,右侧没有maven结构