如何阻止camelot-py 将单个单元格中的多行文本拆分为多个单元格?

问题描述 投票:0回答:2

我正在尝试构建一个应用程序来读取任意 PDF 并从中提取表格,并且我正在使用 Camelot 来提取表格。这对于单元格具有单行值的表格来说效果很好。但是,对于具有多行值单元格的表,Camelot 会将单个单元格中的多行文本拆分为多个单元格。由于 Camelot 是建立在 pdfminer 之上的,因此我尝试调整布局分析参数(特别是 line_margin)以使 Camelot 不分割线。然而,问题仍然存在。

我还可以调整哪些其他参数来解决这个问题?以下是存在此问题的表的示例。

我不想使用“格子”风格,因为我希望看到的大多数表格都没有分界线。

python python-camelot
2个回答
2
投票

如果您的 PDF 表格的线条比单元格更亮(如您的示例所示),那么您可以尝试使用 process_background=True 的网格风格。

tables = camelot.read_pdf('background_lines.pdf', process_background=True)

参见,https://camelot-py.readthedocs.io/en/master/user/advanced.html


0
投票

您可以尝试使用以下参数:

  • strip_text=' '(去除单元格内文本中的换行符)
  • row_tol=10(在识别跨更多行作为同一单元格一部分的文本时使用更大的容差)

您可以使用 row_tol 值:我遇到了与您完全相同的问题,并且解决了 10 个问题。

© www.soinside.com 2019 - 2024. All rights reserved.