python - pypdf不从pdf中提取表格

标签 python pypdf

我正在使用 pypdf 从 pdf 文件中提取文本。问题是未提取 pdf 文件中的表格。我也尝试过使用 pdfminer,但我遇到了同样的问题。

最佳答案

问题是 PDF 中的表格通常由绝对定位的行和字符组成,将其转换为合理的表格表示并非易事。

在 Python 中,PDFMiner 可能是您最好的选择。它为您提供布局对象的树结构,但您必须通过查看行 (LTLine) 和文本框 (LTTextBox) 的位置来自行解释表格。 There's a little bit of documentation here .

或者,PDFX尝试这个(并且经常成功),但你必须将它用作网络服务(不理想,但适合偶尔的工作)。要从 Python 执行此操作,您可以执行如下操作:

import urllib2
import xml.etree.ElementTree as ET

# Make request to PDFX
pdfdata = open('example.pdf', 'rb').read()
request = urllib2.Request('http://pdfx.cs.man.ac.uk', pdfdata, headers={'Content-Type' : 'application/pdf'})
response = urllib2.urlopen(request).read()

# Parse the response
tree = ET.fromstring(response)
for tbox in tree.findall('.//region[@class="DoCO:TableBox"]'):
    src = ET.tostring(tbox.find('content/table'))
    info = ET.tostring(tbox.find('region[@class="TableInfo"]'))
    caption = ET.tostring(tbox.find('caption'))

关于python - pypdf不从pdf中提取表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17523193/

相关文章:

python - 模块/导入包的路径

python - 使用python从新生成的pdf文件中删除空白页

python - 将 Scrapy 作为脚本运行时禁用日志

python - Pandas 与重复的键合并 - 删除重复的行或阻止它的创建

python - PyPDF2 - 合并两个不同 PDF 文件的页面不起作用

python - PyPDF2 尝试提取第一页时返回空白页

python - 使用python从格式化的PDF中提取文本

python - 使用 PyPDF2 去除 PDF 上的水印

python - 为什么列为键字典,仍然会显示为元组作为键字典

python - 使用服务主体登录 python 脚本