我的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。
欢迎任何形式的帮助。
答案 0 :(得分:8)
要解决此问题的步骤:
使用适用于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);
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>
我认为这可能会有所帮助。感谢。