我正在尝试解析一些 pdf 文件以提取一些关键信息。每个 pdf 中有许多表包含这些信息的一部分。所以我尝试使用 camelot 来提取表格,我得到了很好的结果,但我想提取每个表格的标题,因为我想为每个表格及其标题做一个映射。所以我尝试使用获取每个表格的坐标,tables[i]._bbox
然后在这些坐标上添加一些边距以检测表格标题的区域(它可以在表格的顶部、左侧或底部),如图所示在图像中:左侧表格的标题
谁能告诉我如何使用python根据表格坐标从pdf中获取包含表格标题的红色区域的坐标?
我正在尝试解析一些 pdf 文件以提取一些关键信息。每个 pdf 中有许多表包含这些信息的一部分。所以我尝试使用 camelot 来提取表格,我得到了很好的结果,但我想提取每个表格的标题,因为我想为每个表格及其标题做一个映射。所以我尝试使用获取每个表格的坐标,tables[i]._bbox
然后在这些坐标上添加一些边距以检测表格标题的区域(它可以在表格的顶部、左侧或底部),如图所示在图像中:左侧表格的标题
谁能告诉我如何使用python根据表格坐标从pdf中获取包含表格标题的红色区域的坐标?
您可以直接创建 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)