如何从基于文本的 pdf 中删除表格部分

问题描述

我有一个基于文本的 pdf(未成像或扫描)文件,其中包含两个部分——普通文本和表格。我可以使用camelot提取表数据。现在我只想提取没有表格部分的文本部分。有没有办法从pdf中删除表格?

解决方法

根据我的经验,此任务没有现成的方法。

有一次,我创建了一个管道,用于在从 PDF 中提取的文本中插入替换文本来代替表格。我遵循了这种方法:

  1. 从 PDF 中提取文本(使用 PDFBox 或类似工具)
  2. 使用 Camelot 检测表格
  3. 从从 Camelot (table._bbox) 检测到的坐标开始,为每个表格生成一个 PDF 文件(通过编辑文件的裁剪框,再次使用 PDFBox)
  4. 使用与第一步相同的工具从每个文件中提取表格文本
  5. 替换整个文本中的表格文本(基于字符串相似性度量,例如 Levenshtein,或使用模糊字符串匹配)

也许你的问题比我遇到的要简单一些,因为你只需要删除表格的文本而不是替换它。

实际上,您也可以尝试直接删除(编辑)PDF 中的表格,使用 iText 等工具,然后从清理后的 PDF 中提取文本。

无论哪种方式,您都需要付出相当大的开发工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...