首页 文章

从PDF文件集合中提取表格内容[关闭]

提问于
浏览
23

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

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

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

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

1 回答

  • 33
    • PDF format from its inception (超过20年前) never was intended to be host of extractable, meaningfully structured data .

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

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

    • Why Updating Dollars for Docs Was So Difficult

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

    • Introducing Tabula: Upload a PDF, get back tabular CSV data. Poof!

    • Tabula-Extractor: A Command Line Interface to Tabula

    • Tabula source code repository

    • Tabula API (upcoming, not ready yet)

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


    更新

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

    asciicast

    (单击上面的图像查看它正在运行 . 如果它运行得太快,您无法读取所有文本,请使用"Pause"按钮( || -symbol) . )

    它在这里托管:

    • https://asciinema.org/a/22761

相关问题