从PDF文件中提取文本

时间:2009-08-14 04:24:23

标签: c# java pdf

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

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

语言选项:

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

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

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

7 个答案:

答案 0 :(得分:4)

答案 1 :(得分:4)

pdftotext似乎很好地解决了这个问题。

pdftotext file.pdf [textfile.txt]

编辑:我不确定您希望如何保留有关表格的信息。

产生最好看的输出(至少是我的人眼)
pdftotext -layout file.pdf [textfile.txt]

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

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

它包含命令行实用程序 - 请参阅here

答案 5 :(得分:1)

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

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

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

请查看显示how to extract text from PDF的示例。

答案 6 :(得分:0)

尝试opensource java pdf库

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