此链接 ( http://www.lenovo.com/psref/pdf/psref450.pdf) 中的 PDF 包含许多这样的表格:
我想以编程方式从这些表中提取数据和结构。
我尝试过的事情:使用 将 PDF 转换为 HTML
- Tika:不幸的是,表格被转换为空格分隔 段落 - 一些字符串包含空格,所以它是 不可能将它们分开。
- Python 的 PDFMiner:由于缺少字体而返回断言错误。我怀疑 HTML 会类似于输出 Tika,虽然我需要解决缺少字体的问题 确认这一点。
- 在线工具:我试过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/