使用OCR的PDF文本提取方法

时间:2009-04-22 16:38:32

标签: java pdf text-parsing

是否有人试图使用OCR库和Java从PDF中提取文本?你发现什么是最可靠的文本提取库。我见过的大多数方法(tesseract,GOCR)都是需要编写一些JNI代码的C库。

我熟悉pdfbox,它现在是0.8.x版本的Apache孵化器项目,但它的文本提取并不总是准确的。我正在寻找一种更可靠的替代方法。

我还没有尝试过Asprise JavaPDF,在尝试这个过程中,但想了解更多有关OCR方法的信息(如果可能的话)。

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:7)

如果你有基于文本的PDF,我强烈推荐PDFTextStream。这不是免费的,但许可是合理的,而且比PDFBox要好得多。 PDFBox在许多PDF文件上窒息,这些PDF文件是由较新的工具生成的,并且对于它可以处理的PDF不太一致。 PDFTextStream处理我抛出的任何PDF,包括带有嵌入式PNG图像的PDF,PDFBox无法做到。

如果你诅咒PDFTextStream人员添加OCR,他们可能会听。

答案 1 :(得分:2)

我们使用ABBYY FineReader Engine 11.他们有java包装器。

优点:

  • 它适用于所有语言(英语,俄语,乌兹别克语等)和真正的OCR(即使你有没有OCR的pdf,他们首先执行渲染和OCRing)。

<强>缺点:

  • 费用。您必须购买开发者许可证和最终用户许可证。

  • 而且速度非常慢。

答案 2 :(得分:1)

如果要从基于文本的PDF中提取OCR,可能必须先将其转换为图像。

答案 3 :(得分:1)

您可以使用Tesseract的Java包装器 - tesjeract或Tess4J - 来执行OCR。但是,对于PDF,在将其提供给OCR引擎之前,您需要先转换为图像(PNG或TIFF)。

VietOCR调用Tesseract可执行文件来执行文本提取。它使用GhostScript进行PDF到图像转换。