【问题标题】:Extracting table contents from a collection of PDF files [closed]从 PDF 文件集合中提取表格内容[关闭]
【发布时间】:2013-06-20 15:04:23
【问题描述】:

我有一堆 PDF - 可能有数百或数千。它们的格式不尽相同,但它们中的任何一个都可能有一个或多个包含有趣信息的表,我想将这些信息收集到一个单独的数据库中。

当然,我知道我必须写一些东西才能做到这一点。 Perl 对我来说是一个选择——或者也许是 Java。我真的不在乎什么语言,只要它是免费的(或者便宜的免费试用期,以确保它适合我的目的)。

我正在查看 CAM::Parse(使用草莓 Perl),但我不确定如何使用它来定位和从文件中提取表。我想我确实偏爱 Perl,但我确实想要一些可以可靠工作并且相当容易进行字符串操作的东西。

对于这样的事情有什么好的方法?我站在第一方,所以如果 java(或 python 等)有更好的钩子,现在是了解它的好时机。一般指点好;入门代码将是首选。

【问题讨论】:

  • 您对可能包含有趣信息但格式可能不同的 pdf 的描述表明您并不真正了解您拥有的数据。在开始 PDF 文本提取项目之前,请尝试分析您必须处理得足够好的数据以正确制定您的要求。

标签: parsing pdf extract pdf-parsing


【解决方案1】:
  1. PDF 格式从一开始就(20 多年前)从未打算成为可提取的、有意义的结构的宿主数据

  2. 其目的是为文档中的文本、图像和图表提供可靠的视觉表示 - 一种数字纸张(也可以通过打印可靠地转移到真实纸张上)。只是在其开发的后期才添加了更多功能,这应该有助于再次提取数据(google for Tagged PDF)。

  3. 有关从 PDF 中抓取数据时出现的一些问题示例,请参阅这篇文章:

  4. 与我的观点“1”相矛盾。上面,现在我要说的是:对于从 PDF 中提取表格数据(除非它们是扫描页面)每周都变得越来越好的惊人工具系列,请参阅以下链接:

所以:去寻找 Tabula。如果有任何工具可以做你想做的事,那么此时 Tabula 可能是最适合这项工作的工具之一!


更新

我最近创建了一个ASCiinema screencast,演示了如何使用 Tabula 命令行界面从 PDF 中提取一个大表格作为 CSV:

(点击上面的图片查看它正在运行。如果它运行得太快,您无法阅读所有文本,请使用“暂停”按钮(||-符号)。)

这里托管:

【讨论】:

  • 不推荐使用上面评论中建议的库。对于有这种需求的人,你应该使用这个新库:github.com/tabulapdf/tabula-java
  • 它只适用于基于文本的 pdf,而不适用于图像。有没有类似的东西可以从 pdf 图像中提取数据?
  • @Sundeep:当然它只能用于基于文本的 PDF。如果要从图像中提取表格,则必须先尝试在图像上运行 OCR(光学字符识别)过程,然后对文本应用表格提取。最终结果的质量很大程度上取决于 OCR 步骤的成功。
  • 我正在寻找可以做到这一点的工具,顺便说一句,感谢@KurtPfeifle 提供的信息
  • @Sundeep:你可以开始看看这里提到了哪些工具:stackoverflow.com/questions/tagged/ocr
猜你喜欢
  • 2018-07-07
  • 2010-12-15
  • 2023-03-23
  • 1970-01-01
  • 2022-01-18
  • 2013-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多