在Python中从pdf文件中提取固定大小和位置表

问题描述

假设我有许多与 here 中的文件类似的 pdf 文件

我想提取下表并保存为excel文件

enter image description here

我可以使用包 excalibur 手动提取表格并保存 excel 文件

使用 pip3 安装 Excalibur 后,我使用以下命令初始化元数据数据库

$ excalibur 初始化数据库

然后使用以下命令启动网络服务器:

$ excalibur 网络服务器

然后转到 http://localhost:5000 并开始从 PDF 中提取表格数据。

我想知道是否可以使用 python 脚本自动为包含 excalibur-pycamelotpdfminer 等包的多个 pdf 文件执行此操作,因为表的大小和位置固定用于同一城市的报告。

您可以从 this link 下载其他报告文件

非常感谢。

解决方法

使用 Camelot,您可以构建这样的管道:

import camelot

files_list=['FIRST_PATH','SECOND_PATH',...]
regions=['REGION_COORDINATES_1','REGION_COORDINATES_2',...]

for filepath in files_list:
    tables=camelot.read_pdf(filepath,pages='1-end',table_regions=regions)
    tables.export('tables.xls',f='excel')

table_regions 参数应该在知道表格在页面内的大概位置时使用;如果你知道桌子的确切位置,你应该使用table_areas

您可以在 Camelot documentation 中阅读有关这些参数和其他主题的更多信息。