6

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

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

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

任何帮助,将不胜感激。

4

4 回答 4

7

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

如果您质问 PDFTextStream 人员添加 OCR,他们可能会听。

于 2009-04-22T18:58:28.217 回答
2

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

优点:

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

缺点:

  • 它的成本。您必须购买开发人员许可证和最终用户许可证。

  • 而且速度非常慢。

于 2015-04-08T09:14:15.747 回答
1

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

于 2009-04-22T16:53:47.953 回答
1

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

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

于 2011-05-15T00:43:52.170 回答