从PDF文件集合中提取表格内容

时间:2013-06-20 15:04:23

标签: parsing pdf extract pdf-parsing

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

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

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

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

1 个答案:

答案 0 :(得分:37)

  1. PDF格式从一开始 (超过20年前) 从未打算成为可提取的,有意义的结构数据 即可。

  2. 它的目的是成为文件中文本,图像和图表的可靠视觉表示 - 一种数字纸张(也可以通过打印可靠地转移到真实纸张上)。仅在其开发的后期才添加了更多功能,这有助于再次提取数据(谷歌的标记PDF )。

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

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

  5. 所以:去寻找Tabula。如果任何工具可以做你想要的,那么Tabula可能是最好的工作!


    更新

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

    asciicast

    (点击上面的图片查看它是否正在运行。如果它运行得太快,您无法阅读所有文字,请使用“暂停”按钮( || < / strong> -symbol)。)

    它托管在这里: