• PDF解析


    PDF(Portable Document Format),便携式文档结构,是一种很有用的文档格式,其最大的特点是平台无关且功能强大(支持文字\图像\表单\链接\音乐\视频等)。做PDF的解析,首先要熟悉PDF文件的物理结构和逻辑结构。

        PDF文件的物理结构可以分为以下几块:

        1.文件头

        2.文件体(PDF文件的主要部分,由一系列对象组成)

        3.交叉引用表(为了能对简接对象进行随机存取而设立的一个间接对象的地址索引表)

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

       如下图:

         PDF文档的逻辑结构:

         作为一种结构化的文件格式,一个PDF文档是由一些称为“对象”的模块组成的。并且每个对象都有数字标号,这样的话这些对象就可以被其他的对象所引用。  

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

    图如下:

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

    图如:

  • 相关阅读:
    libSVM的数据格式
    libSVM 简易使用手册
    python3使用csv模块读写csv文件
    sklearn
    windows下pip升级到8.1.2
    Elasticsearch学习(一)————简单命令
    InnoDB undo log物理结构的初始化
    【java_设计模式】建造者模式
    POI原生导入读取EXCEL
    websocket 进阶!netty框架实现websocket达到高并发
  • 原文地址:https://www.cnblogs.com/xuezhi/p/2790404.html
Copyright © 2020-2023  润新知