使用pdfminer从pdf中提取表格数据的工具
pdf2data的Python项目详细描述
一些表格数据是否以pdf格式锁定?就像我的财务信息 目前的工作地点,大致如下:
Tabula对于 你需要提取的信息?(在我的案例中有几千页)这个 你可能在找包裹。我应该注意这是 一个针对非常结构化数据的简单工具。tabla可以处理farmesssier 情况比这个包。细胞高度失调?单词包装的单元格? 跨越细胞?你最好用表格。计算机生成的报告 迫切想加入sqlite数据库的pdf?你走到右边了 地点。
阅读uiuc财务信息
如果你来这里是为了阅读uiuc的财务报表,这里有一页 just for you。
软件包概述
这个包是在pdfminer的基础上构建的 易于以pdf格式吸收计算机生成的表格数据,并生成类似json的列表 行字典。基本工作流程如下:
# identify top of tabletop_y0=find_attr_group_matching(["Last Name","First Name"],"y0",page_it.lines)# extract text snippets making up table bodytable_lines=[lforlinpage_it.linesifl.y0<top_y0]# extract header text snippetsheaders=[lforlinpage_it.linesifabs(l.y0-top_y0)<5]# extract tablerows=find_row_table(headers,table_lines)rows=merge_overlapping_rows(rows,"y0","y1")
这将使rows成为大致如下所示的数据结构:
{'Amount ':TL(' 60.00 '),'Last Name':TL('Lidstad'),'Address':TL('62\xa0Mississippi\xa0River\xa0Blvd\xa0N'),'First Name':TL('Dick\xa0&\xa0Peg'),'City':TL('Saint\xa0Paul'),'State':TL('MN'),'Zip':TL('55104'),'Occupation':TL('retired'),'Date':TL('10/12/2012')}{'Amount ':TL(' 60.00 '),'Last Name':TL('Strom'),'Address':TL('1229\xa0Hague\xa0Ave'),'First Name':TL('Pam'),'City':TL('St.\xa0Paul'),'State':TL('MN'),'Zip':TL('55104'),'Date':TL('9/12/2012')}{'Amount ':TL(' 60.00 '),'Last Name':TL('Seeba'),'Address':TL('1399\xa0Sheldon\xa0St'),'First Name':TL('Louise\xa0&\xa0Paul'),'City':TL('Saint\xa0Paul'),'State':TL('MN'),'Zip':TL('55108'),'Occupation':TL('BOE'),'Employer':TL('City\xa0of\xa0Saint\xa0Paul'),'Date':TL('10/12/2012')}{'Amount ':TL(' 60.00 '),'Last Name':TL('Schumacher\xa0/\xa0Bales'),'First Name':TL('Douglas\xa0L.\xa0/\xa0Patricia\xa0948\xa0County\xa0Rd.\xa0D\xa0W'),'City':TL('Saint\xa0Paul'),'State':TL('MN'),'Zip':TL('55126'),'Date':TL('10/13/2012')}{'Amount ':TL(' 75.00 '),'Last Name':TL('Abrams'),'Address':TL('238\xa08th\xa0St\xa0east'),'First Name':TL('Marjorie'),'City':TL('St\xa0Paul'),'State':TL('MN'),'Zip':TL('55101'),'Occupation':TL('Retired'),'Employer':TL('Retired'),'Date':TL('8/8/2012')}
请参阅this demo以获取一个最小的、全功能的示例。 在source code中有一些文档。在 此外,还有一些(很少记录的)工具用于插入 在sqlite3数据库中获取数据,并使用完整的脚本 财务信息可消化。
该包仅限python 3。安装时使用:
pip install pdf2data
https://github.com/inducer/pdf2data
版权所有2019 Andreas Kloeckner
根据麻省理工学院许可证发布
在支持方面,如果这不能满足你的需要,你很可能 你自己的。我很乐意打补丁,但我不太可能有时间去修 你的用例。