代码之家  ›  专栏  ›  技术社区  ›  Jonathan Holloway

基于OCR的PDF文本提取方法

  •  5
  • Jonathan Holloway  · 技术社区  · 15 年前

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

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

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

    任何帮助都将不胜感激。

    4 回复  |  直到 15 年前
        1
  •  7
  •   Infinite Recursion    9 年前

    如果你有基于文本的PDF,我强烈建议 PDFTextStream . 它不是免费的,但是许可是合理的,而且比PDFBox要好得多。PDFBox阻塞了许多由较新工具生成的PDF文件,并且它所能处理的PDF文件不太一致。PDFTextStream处理我抛出的任何PDF文件,包括带有嵌入PNG图像的PDF文件,PDFBox不能这样做。

    如果你质问PDFTextStream的人添加OCR,他们可能会听上去。

        2
  •  2
  •   Infinite Recursion    9 年前

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

    赞成的意见:

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

    欺骗:

    • 它很贵。你必须购买开发者许可证和最终用户许可证。

    • 而且非常缓慢。

        3
  •  1
  •   Otávio Décio    15 年前

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

        4
  •  1
  •   nguyenq    13 年前

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

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