python - 解析 PDF 文档中的表格

标签 python parsing pdf pdfbox apache-tika

此链接 ( http://www.lenovo.com/psref/pdf/psref450.pdf) 中的 PDF 包含许多这样的表格:

enter image description here

我想以编程方式从这些表中提取数据和结构。

我尝试过的事情:使用 将 PDF 转换为 HTML

  1. Tika:不幸的是,表格被转换为空格分隔 段落 - 一些字符串包含空格,所以它是 不可能将它们分开。
  2. Python 的 PDFMiner:由于缺少字体而返回断言错误。我怀疑 HTML 会类似于输出 Tika,虽然我需要解决缺少字体的问题 确认这一点。
  3. 在线工具:我试过http://www.zamzar.com/和其他几个。该文件太大而无法处理(对于在线 服务)或产生错误。

我计划将 PDF 转换为 HTML,然后使用 BeautifulSoup 对其进行解析。

输出可以是 JSON(例如,每个表一个对象)、XML 或几乎任何保持结构的格式。

最佳答案

您可以试试 PDFBox。相关文档在这里:

https://pdfbox.apache.org/1.8/cookbook/textextraction.html

扩展 org.apache.pdfbox.pdfviewer.PDFPageDrawer 并覆盖 strokePath 方法。从那里您可以拦截水平和垂直线段的绘图操作,并使用该信息来确定列和行的位置。您可以设置文本区域以确定在哪个区域绘制哪些数字/字母/字符。由于您知道区域的布局是表格形式的,因此您将能够定义表格并使用简单的算法判断提取的文本属于哪一列和哪一行。

关于python - 解析 PDF 文档中的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621151/

相关文章:

java - 在第一次出现逗号后返回字符串的子字符串

c# - 将图像渲染为 pdf 是模糊的

python - 如何检查 csv 文件行中是否存在等于变量的字符串

python - 如何从 jupyter 笔记本中的文件夹访问文件名

python - 如何在python中进行CamelCase拆分

python - OpenAI/Tensorflow自定义游戏环境而不是使用 'gym.make()'

c++ - 如何在 C++ 中监视流

c# - 为 Unity3d 编写最简单的 newick 解析器(c# 或 Actionscript)

javascript - pdf指令不在Angular JS中显示pdf文件

javascript - 如何编辑已经上传的pdf文件?