有没有人尝试使用 OCR 库和 Java 从 PDF 中提取文本?您发现什么是最可靠的文本提取库。我见过的大多数方法(tesseract、GOCR)都是需要编写一些 JNI 代码的 C 库。
我熟悉 pdfbox,它现在是 0.8.x 版本的 Apache 孵化器项目,但它的文本提取并不总是准确的。我正在寻找一种更可靠的替代方法。
在尝试的过程中,我还没有尝试过 Asprise JavaPDF,但想了解更多关于 OCR 方法的信息(如果可能的话)。
任何帮助,将不胜感激。
有没有人尝试使用 OCR 库和 Java 从 PDF 中提取文本?您发现什么是最可靠的文本提取库。我见过的大多数方法(tesseract、GOCR)都是需要编写一些 JNI 代码的 C 库。
我熟悉 pdfbox,它现在是 0.8.x 版本的 Apache 孵化器项目,但它的文本提取并不总是准确的。我正在寻找一种更可靠的替代方法。
在尝试的过程中,我还没有尝试过 Asprise JavaPDF,但想了解更多关于 OCR 方法的信息(如果可能的话)。
任何帮助,将不胜感激。
如果您有基于文本的 PDF,我强烈推荐PDFTextStream。它不是免费的,但许可是合理的,而且比 PDFBox 好得多。PDFBox 阻塞了许多由较新工具生成的 PDF 文件,并且对于它可以处理的 PDF 并不太一致。PDFTextStream 处理我扔给它的任何 PDF,包括带有嵌入 PNG 图像的 PDF,这是 PDFBox 无法做到的。
如果您质问 PDFTextStream 人员添加 OCR,他们可能会听。
我们使用 ABBYY FineReader Engine 11。他们有 java 包装器。
优点:
缺点:
它的成本。您必须购买开发人员许可证和最终用户许可证。
而且速度非常慢。
如果您想从基于文本的 PDF 中提取 OCR,您可能必须先将其转换为图像。
您可以使用 Tesseract 的 Java 包装器 - tesjeract 或 Tess4J - 来执行 OCR。但是,对于 PDF,您需要先转换为图像(PNG 或 TIFF),然后再将其提供给 OCR 引擎。
VietOCR调用 Tesseract 可执行文件来执行文本提取。它使用 GhostScript 进行 PDF 到图像的转换。