【问题标题】:How to get table coordinates using python-camelot?如何使用 python-camelot 获取表格坐标?
【发布时间】:2019-09-19 11:59:56
【问题描述】:
我正在尝试解析一些 pdf 文件以提取一些关键信息。每个 pdf 中有许多表包含这些信息的一部分。所以我尝试使用 camelot 来提取表格,我得到了很好的结果,但我想提取每个表格的标题,因为我想为每个表格及其标题做一个映射。所以我尝试使用tables[i]._bbox获取每个表格的坐标,然后在这些坐标上添加一些边距以检测表格标题的区域(它可以在顶部,左侧或底部) ) 如图所示:title of table on the left
title of the table on the top
谁能告诉我如何使用python根据表格坐标从pdf中获取包含表格标题的红色区域的坐标?
【问题讨论】:
标签:
python-3.x
pdf
python-camelot
【解决方案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)