在发布这篇文章之前,我已经对堆栈溢出进行了广泛的搜索,并没有在camelot页面的维度上找到任何内容。存在这问题,它建议使用table_region
,但这并不能解决OP的问题或我的问题。不幸的是,我不能对此发表评论,以跟进“任择议定书”,看看他们是否找到了解决办法。
我想做的事:
我使用Camelot来识别表(很明显)。有时,当我知道页面中可能包含感兴趣表的区域时,我只想在该区域中搜索。使用camelot.read_pdf()
的table_region
kwarg很容易做到这一点--我只需要为Camelot提供一对搜索坐标。
问题是,我使用PyMuPDF获取这些坐标,所以它们位于PyMuPDF的坐标系中。我已经知道如何翻译这些坐标,但我遗漏了卡米洛特的一个关键信息--页面的尺寸。这些值在PyMuPDF ( Page .bound()
属性)中很容易获得,我需要Camelot等价物。我可以在这里进一步解释代数,如果有人认为
到目前为止我尝试过的
我读了文档。由于文档中的这一行,我想知道这是否提供了一种获取维度的方法:“在使用格子时,可能没有检测到较小的行。被检测到的最小行的大小是通过将PDF页面的维度除以称为line_scale
的缩放因子来计算的。默认情况下,它的值为15。”
我对其他选项开放,基本上我想检查页面的某个区域是否包含一个表(在PyMuPDF坐标系中描述的区域,对于一个pdf页面来说,这个区域的尺寸通常是(612,792),原点在左上角。camelot的原点在左下角),或者页面上的任何表格都位于给定的区域,如果这是有意义的话。
发布于 2019-12-04 14:58:15
尝试下面的代码,看看它是否为您提供了所需的维度:
from camelot import utils
layout, dim = utils.get_page_layout(file_name)
https://stackoverflow.com/questions/59163978
复制相似问题