我正在尝试解析一些pdf文件以提取一些关键信息。每个pdf中都有一些表格,其中包含这些信息的一部分。因此,我尝试使用camelot提取表,但结果很好,但是我想提取每个表的标题,因为我想为每个表及其标题进行映射。因此,我尝试使用tables[i]._bbox
获取每个表格的坐标,然后在这些坐标上添加一些边距以检测表格标题的区域(它可以位于表格顶部,左侧或底部)表格中的图片):title of table on the left
有人能告诉我如何使用python根据表格坐标从pdf获取包含表格标题的红色区域的坐标吗?
答案 0 :(得分:1)
您可以直接创建PDF解析器。例如Lattice
:
parser = Lattice(**kwargs)
for p in pages:
t = parser.extract_tables(p, suppress_stdout=suppress_stdout,
layout_kwargs=layout_kwargs)
tables.extend(t)
然后,您可以访问parser.layout
,其中包含页面中的所有组件。这些组件都具有bbox (x0, y0, x1, y1)
,提取的表也具有bbox
对象。您可以找到最接近表格的组件,并提取其文本和坐标。
如果不想更改在camelot中调用表提取的方式,可以再次解析PDF:
from camelot import utils
layout, dim = utils.get_page_layout(file_name)