Pdfminer 分析

pdfminer分析

解析PDF是一件非常耗时和内存的工作,因此PDFMiner使用了一种称作lazy parsing的策略,只在需要的时候才去解析,以减少时间和内存的使用。

要解析PDF至少需要两个类:PDFParser 和 PDFDocument

  • PDFParser 从文件中提取数据
  • PDFDocument 保存数据

另外还需要PDFPageInterpreter去处理页面内容,PDFDevice将其转换为我们所需要的。PDFResourceManager用于保存共享内容例如字体或图片。

在这里插入图片描述

比较重要的是Layout,主要包括以下这些组件:

LTPage:Represents an entire page. May contain child objects like

  • LTTextBox
  • LTFigure
  • LTImage
  • LTRect
  • LTCurve
  • LTLine

在这里插入图片描述


代码分析

PDF不像word,TXT可以随意读取内容,本身读取PDF就是一件比较困难的事,用程序去读取PDF的时候也是以二进制去读取PDF然后在转换成文字。

PDF更像一张图片。PDF更像是在一张纸的各个准确的位置上把内容都摆放出来。大部分情况下,没有逻辑结构,比如句子或段落,并且不能自适应页面大小的调整。PDFMiner尝试通过猜测它们的布局来重建它们的结构,但是不保证一定能工作。

我们把流程图分解来看:

在这里插入图片描述

解析PDF的时候有两个核心方法:PDFParse和PDFDocument,他们两个结合使用就可以解析PDF

  • PDFParser 从文件中获取数据

  • PDFDocument 存储文档数据结构到内存中

  • PDFPageInterpreter 解析page内容

  • PDFDevice 把解析到的内容转化为你需要的东西

  • PDFResourceManager存储共享资源,例如字体或图片

ViatorSun CSDN认证博客专家 深度学习 计算机视觉
研究生在读、Github开源世界贡献者,深度学习 & 计算机视觉分享者;
主要研究【深度学习 & 计算机视觉】相关方向,欢迎感兴趣的小伙伴一起交流、探讨~
相关推荐
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页