从PDF中提取表格数据

Raj*_*esh 7 pdf pdf-to-html pdftotext

有没有一致的方法从PDF文件中提取表格?有工具吗?

到目前为止我做了什么:

  • 我试过pdftotext工具.它有一个转换为HTML布局的选项.

有什么问题:

  • 表格信息不会保留在HTML输出中
  • 我期待<table>标签,但一切都在<p>标签下.

PDF文档中是否有任何标记表示表格结构?像<table>,<tr><td>在HTML?

如果"是",任何对此的指示都会有所帮助.如果"不",关于这个事实的明确信息也是有帮助的.

Fra*_*Rem 13

如果PDF文档错过了将内容标记为表,行,单元格等(称为标记)的信息,则没有一致的方法从PDF文档中提取表.大多数情况下,PDF文档不包含这些标记.这些标签通常用于使PDF可访问,以便例如可以大声朗读.PDF无需使用这些标记.

  • **+ 1** - 基本上是很好的答案.直到几个月前,我自己的答案都是一样的.但后来我发现**[TabulaPDF](https://github.com/tabulapdf/tabula)**及其**[技术](http://tabula.technology/)**. - 你可以投票重新打开这个问题,所以我可以加我答案吗? (5认同)

小智 8

然而,你可以做的是使用pdftotext -layout input.pdf output.txt.它在文本文件中打印pdf并包含原始布局.没有标签,但有一些漂亮的脚本(perl/php /等),你可以从表中恢复数据.

如果您正在处理单个页面,那么您最好手动完成它,但如果您(像我一样)必须处理100页或1000页的页面,那么它就是您可以获得的最佳效果.我一直在寻找很长一段时间,找不到比pdftotext更好的pdf-2文本工具.

输出中存在一些不一致,并非所有类似的pdf表都产生类似的txt输出,但这会使您的脚本更有趣.

  • 使用-layout选项的pdftotext帮了很大忙.谢谢. (2认同)
  • @Quamis,我正在使用 pdftotext 的 3.04 版,它是从 http://www.foolabs.com/xpdf/download.html 与 xpdf 包一起下载的。它实际上从使用消息中打印出“-table”。希望这可以帮助 (2认同)
  • @Quamis:版本 0.24.5 来自初始 XPDF 代码库的“Poppler”。分叉发生在 2005 年。如今,Poppler 工具总体上比原来的工具(也在继续开发)拥有更多的功能,并且似乎维护得更好。然而,“pdftotext”的“-table”参数似乎是 Poppler 分支仍然缺少的功能之一,而原始 XPDF 则更胜一筹。XPDF 的最新版本是 2014 年 5 月 28 日发布的 v3.04。Poppler 的最新版本是 2016 年 4 月 28 日(3 天前)发布的 v0.43.0。2014 年 5 月 28 日,Popper 版本为 v0.26.0(此后发布了 17 个版本)。 (2认同)