2

我需要从 pdf 中提取表格,这些表格可以是任何类型,多个标题、垂直标题、水平标题等。

我已经实现了两者的基本用例,发现 tabula 比 camelot 做得好一点,但仍然无法完美地检测所有表,我不确定它是否适用于所有类型。

因此,寻求实施过类似用例的专家的建议。

示例 PDF:PDF1 PDF2 PDF3

表格实施:

import tabula
tab = tabula.read_pdf('pdfs/PDF1.pdf', pages='all')
for t in tab:
    print(t, "\n=========================\n")

卡米洛特实施:

import camelot
tables = camelot.read_pdf('pdfs/PDF1.pdf', pages='all', split_text=True)
tables
for tabs in tables:
    print(tabs.df, "\n=================================\n")
4

2 回答 2

6

请阅读:https ://camelot-py.readthedocs.io/en/master/#why-camelot

Camelot的主要优点是该库参数丰富,您可以通过这些参数改进提取。

显然,这些参数的应用需要一些研究和各种尝试。

在这里您可以找到 Camelot 与其他 PDF 表提取库的比较。

于 2020-04-24T09:23:20.973 回答
2

我认为 Camelot 更好地以干净的格式提取数据,而不是混乱(即数据保留了信息并且行内容不受影响)。因此,在每个单元格的行数不同的情况下,提取的数据质量更好。->Tabula 需要 Java 运行时环境

有广泛用于从 PDF 文件中提取表格的开放(Tabula,pdf-table-extract)源(smallpdf,PDFTables)工具。他们要么给出很好的输出,要么惨遭失败。两者之间没有。这无济于事,因为现实世界中的一切,包括 PDF 表格提取,都是模糊的。这导致为每种类型的 PDF 表格创建临时表格提取脚本。创建 Camelot 的目的是为用户提供对表提取的完全控制。如果您无法使用默认设置获得所需的输出,您可以调整它们并完成工作!

于 2021-11-29T11:46:38.050 回答