如何使用python-camelot获取表坐标?

时间:2019-09-19 11:59:56

标签: python-3.x pdf python-camelot

我正在尝试解析一些pdf文件以提取一些关键信息。每个pdf中都有一些表格,其中包含这些信息的一部分。因此,我尝试使用camelot提取表,但结果很好,但是我想提取每个表的标题,因为我想为每个表及其标题进行映射。因此,我尝试使用tables[i]._bbox获取每个表格的坐标,然后在这些坐标上添加一些边距以检测表格标题的区域(它可以位于表格顶部,左侧或底部)表格中的图片):title of table on the left

title of the table on the top

有人能告诉我如何使用python根据表格坐标从pdf获取包含表格标题的红色区域的坐标吗?

1 个答案:

答案 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)