首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Tika检测到Tesseract,但没有执行任何OCR

Tika检测到Tesseract,但没有执行任何OCR
EN

Stack Overflow用户
提问于 2017-12-01 12:18:37
回答 1查看 2.4K关注 0票数 0

我刚刚安装了Tika从Github的存储库,并试图OCR,一个PDF,其中包含扫描的文档页。

代码语言:javascript
运行
复制
java -cp tika-app/target/tika-app-1.17-SNAPSHOT.jar org.apache.tika.cli.TikaCLI /tmp/testing/sample_scanned.pdf

但是,只提取元数据(尽管我事先得到了安装和使用Tesseract的确认:

警告:除非您将TesseractOCRParser排除在默认解析器之外,否则将安装Tesseract OCR并将其自动应用于图像文件。Tesseract可能会大大减慢内容提取的速度(TIKA-2359)。从Tika 1.15 (和以前的版本)开始,Tesseract被自动调用。在Tika的未来版本中,用户可能需要通过TesseractOCRParser打开TikaConfig。

(全输出)

注意:普通PDF(包含)纯文本已成功提取。问题似乎在于OCR过程本身。

这已经在Centos以及Ubuntu上进行了测试--同样的问题。

是否需要对配置文件进行更改,指定更多的解析器?是什么导致的?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-12-27 15:49:42

原来PDF图像提取在默认情况下是禁用的。来自PDFParserConfig

警告:一些中等大小的PDF文档(~4MB)可以包含数以千计的嵌入式图像,总数超过2.5GB。另外,至少在PDFBox 1.8.5中,内存消耗和/或内存不足的错误可能会令人吃惊地大。请小心设置为true。默认情况是false

一个简单的例子,使它对我有效:

代码语言:javascript
运行
复制
Parser parser = new AutoDetectParser();
ContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);
ParseContext parseContext = new ParseContext();
PDFParserConfig pdfConfig = new PDFParserConfig();
pdfConfig.setExtractInlineImages(true);
parseContext.set(PDFParserConfig.class, pdfConfig);
try (InputStream stream = ClasspathUtil.readStreamFromClasspath("test.pdf")) {
    parser.parse(stream, handler, new Metadata(), parseContext);
    System.out.println(handler.toString());
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47593264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档