从PDF文件中提取文本

我需要从PDF文件中提取文本。 该文本可能采用表格格式,并将用于在外部方和我们的系统之间自动传输数据。

任何人都可以建议一个命令行工具(例如pdf到txt)或一个对此有利的库吗?

语言选择:

  • C#(首选)
  • Java(如果必须的话)

我在这里找到了一些想法,但我认为那个人正在谈论更多关于一次性的情况,我说的更像是每日导入:

https://stackoverflow.com/questions/488089/extracting-tables-from-pdf-files

pdftotext似乎很好地完成了这个伎俩。

 pdftotext file.pdf [textfile.txt] 

编辑 :我不确定您希望如何保留有关表格的信息。 最好看的输出(至少是我的人眼)产生于

 pdftotext -layout file.pdf [textfile.txt] 

这样可以尽可能保持文档的原始布局。 特别是,表格在文本输出中看起来仍然很好。 默认是将表的列解释为文本列(可怕)。 另一个对我来说不太好但可能仍然有用的选项是-raw选项。

我无法提供解决方案,但只提供一般性建议。 我的建议是在记事本或其他纯文本编辑器中打开PDF文档并研究格式代码。 他们很容易理解。 例如,// par是Paragraph,// tab是Tab。 一旦知道了表格布局的格式代码,就可以很容易地找到自己的解决方案来从PDF文档中提取任何内容。

Java上还有PdfBox和JPedal。 PDF文件格式中不存在表格,因此任何软件都会“猜测”它们。

Apache Tika是一个开源Java工具包,专门研究您正在寻找的内容:从包括pdf在内的各种文档中提取结构化上下文。

它确实使用PDFBox作为pdf文件格式,但提供了抽象级别,非常适合提取结构化上下文。

它包含命令行实用程序 – 请参见此处 。

PDF中的表格数据通常难以正确提取,因为大多数PDF文件都不包含结构化内容元数据。 没有这个元数据PDF文件只是一堆文本和其他操作。 大多数时候,只有人类可以说文档中是否有表格。

几乎任何足够先进的工具和库都尝试使用启发式方法以某种方式构造从PDF中提取的文本。 结果当然因工具和图书馆而异。

您可以尝试Docotic.Pdf库 (免责声明:我为Bit Miracle工作)从PDF文件中提取文本。 我认为图书馆应该提取质量足以进一步处理的文本。

请查看显示如何从PDF中提取文本的示例。

尝试opensource java pdf库

http://www.lowagie.com/iText/docs.html