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

How to get table coordinates using python-camelot?

我正在尝试解析一些 pdf 文件以提取一些关键 information.There 是每个包含这些信息的一部分的 pdf 中的 table 的数量。所以我尝试使用 camelot 来提取 tables 并且我得到了很好的结果但是我想提取每个 table 的标题因为我想为每个 table 做一个映射及其标题.所以我尝试使用 tables[i]._bbox 获取每个 table 的坐标,然后为这些坐标添加一些边距以检测 table 标题的区域(它可以在顶部,在 table 的左侧或底部),如图所示:title of table on the left

title of the table on the top

谁能告诉我如何使用python根据table坐标从pdf中获取包含table标题的红色区域的坐标?

您可以直接创建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) 并且提取的 table 也有一个 bbox 对象。您可以找到最接近 table 的组件并提取其文本和坐标。 如果您不想更改在 camelot 中调用 table 提取的方式,您可以再次解析 PDF:

from camelot import utils
layout, dim = utils.get_page_layout(file_name)