首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在PDF文件中找到表格网格线?

如何在PDF文件中找到表格网格线?
EN

Stack Overflow用户
提问于 2021-03-04 03:26:30
回答 1查看 522关注 0票数 0

为了更准确地提取表单元格中嵌入的类似表格的数据,我希望能够识别PDF中的表单元格边界,如下所示:

我已经尝试使用Camelot、pdfplumber和PyMuPDF来提取这样的表,并取得了不同程度的成功。但由于我们收到的PDF格式不一致,即使在指定表格边界时,我也无法可靠地获得准确的结果。

我发现,如果我通过显式指定单元格边界来单独提取每个表格单元格,结果会更好。我已经通过手动输入边界进行了测试,这是我使用Camelot的可视化调试工具获得的。

我的挑战是如何以编程方式识别表格单元格边界,因为表格可以从页面上的任何位置开始,并且单元格的垂直高度是可变的。

在我看来,人们可以通过找到行分隔线的坐标来做到这一点,这对人类来说是如此明显。但是我还不知道如何使用python工具找到这些行。这是可能的吗,或者有其他/更好的方法来解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-02 14:52:22

我最近有一个类似的用例,我需要通过代码本身弄清楚边界。对于您的用例,有两个选项:

  1. 如果要标识整个表的边界,可以执行以下操作:

代码语言:javascript
运行
复制
import pdfplumber
pdf = pdfplumber.open('file_name.pdf')
p0 = pdf.pages[req_page] # go to the required page

tables = p0.debug_tablefinder() # list of tables which pdfplumber identifies
req_table = tables.tables[i] # Suppose you want to use ith table

req_table.bbox # gives you the bounding box of the table (coordinates)

  1. 您想要访问表中的每个单元格,并从中提取单词:

代码语言:javascript
运行
复制
import pdfplumber
pdf = pdfplumber.open('file_name.pdf')
p0 = pdf.pages[req_page] # go to the required page

tables = p0.debug_tablefinder() # list of tables which pdfplumber identifies
req_table = tables.tables[i] # Suppose you want to use ith table

cells = req_table.cells # gives list of all cells in that table

for cell in cells[i:j]: # iterating through the required cells
    p0.crop(cell).extract_words() # extract the words 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66463612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档