【问题标题】:Unable to extract scanned pdf using TesseractOCRConfig Apache Tika无法使用 TesseractOCRConfig Apache Tika 提取扫描的 pdf
【发布时间】:2016-09-29 06:23:44
【问题描述】:

我的 pdf 包含扫描的图像,我想从中提取文本。

我尝试了什么:我尝试了 AutoDetectParsers 但没有输出。

我遵循Apache Tika extract scanned PDF files 中提供的解决方案以及https://issues.apache.org/jira/browse/TIKA-1729 中的 Apache Tika Jira,但得到空字符串而没有任何错误。

我的配置:Win 7 64位操作系统,JDK 1.8.0_45。

欢迎任何形式的帮助。

【问题讨论】:

  • 您是否安装了 Tesseract 并位于配置中指定的位置?您是否尝试关注Tika Troubleshooting Guide
  • @Gagravarr 我正在使用 maven 安装所有包含 Tesseract 的 jar。我查看了无内容提取问题的故障排除指南。我使用了最新版本(1.13)的 Apache-tika-app.jar 并尝试使用 GUI 检查提取但没有输出。
  • Tesseract 不是 Java 库,因此 Maven 不会帮助您。您需要为您的操作系统下载并安装本机程序
  • @Gagravarr 我不想为此使用任何软件。我想使用可以在我的 java 应用程序中使用的 TesseractOCR java api。无论如何只是为了好玩,我安装了 tesseract 桌面应用程序并尝试了我的 pdf,它提取了一些不正确的单词。
  • Tesseract 是一个本机程序,您必须单独下载和安装。所有 Tika 船都是围绕 Tesseract 的适当包装器,以便在安装后使用它

标签: java parsing pdf ocr apache-tika


【解决方案1】:

解决此问题的步骤:

  1. 使用适用于 Windows 的“tesseract-ocr-setup-3.05.00dev.exe”从https://sourceforge.net/projects/tesseract-ocr-alt/files/ 在您的系统中安装 Tesseract,并在您的配置中设置其位置。

    Java 代码:

    Parser parser = new AutoDetectParser();
    BodyContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);
    TesseractOCRConfig config = new TesseractOCRConfig();
    config.setTesseractPath(tPath);
    PDFParserConfig pdfConfig = new PDFParserConfig();
    pdfConfig.setExtractInlineImages(true);
    pdfConfig.setExtractUniqueInlineImagesOnly(false); // set to false if pdf contains multiple images.
    ParseContext parseContext = new ParseContext();
    parseContext.set(TesseractOCRConfig.class, config);
    parseContext.set(PDFParserConfig.class, pdfConfig);
    //need to add this to make sure recursive parsing happens!
    parseContext.set(Parser.class, parser);
    
  2. Maven 依赖:

<dependencies> <dependency> <groupId>org.apache.tika</groupId> <artifactId>tika-parsers</artifactId> <version>1.13</version> </dependency> <dependency> <groupId>com.levigo.jbig2</groupId> <artifactId>levigo-jbig2-imageio</artifactId> <version>1.6.5</version> </dependency> <dependency> <groupId>com.github.jai-imageio</groupId> <artifactId>jai-imageio-core</artifactId> <version>1.3.1</version> </dependency> </dependencies>

我认为这可能会有所帮助。谢谢。

【讨论】:

  • 谢谢你。请注意使用 levigo 和 jai 的许可影响。如果它们与 Apache 2.0 兼容,我们就会嵌入它们。
猜你喜欢
  • 2015-11-28
  • 1970-01-01
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多