我正在使用Apache Tika Parser将PDF文件解析为文本。某些PDF可能包含扫描的文档。 Apache Tika使用Tesseract将文本识别为图像。但是没有带有Tesseract的jar库,用户应该在操作系统中安装Tesseract作为独立的应用程序。 如何在不安装Tesseract的情况下使用Apache Tika的Tesseract? 我尝试将tesseract文件夹添加到classpath并配置如下:
TesseractOCRConfig config = new TesseractOCRConfig();
config.setTesseractPath("tesseract");
config.setTessdataPath("tesseract/tessdata");
PDFParserConfig pdfConfig = new PDFParserConfig();
pdfConfig.setOcrStrategy(PDFParserConfig.OCR_STRATEGY.OCR_AND_TEXT_EXTRACTION);
ParseContext parseContext = new ParseContext();
parseContext.set(PDFParserConfig.class, pdfConfig);
但我得到了:
org.apache.commons.io.IOExceptionWithCause: Unable to end a page
at org.apache.tika.parser.pdf.AbstractPDF2XHTML.endPage(AbstractPDF2XHTML.java:428)
at org.apache.tika.parser.pdf.PDF2XHTML.endPage(PDF2XHTML.java:162)
at org.apache.pdfbox.text.PDFTextStripper.processPage(PDFTextStripper.java:393)
at org.apache.tika.parser.pdf.PDF2XHTML.processPage(PDF2XHTML.java:147)
at org.apache.pdfbox.text.PDFTextStripper.processPages(PDFTextStripper.java:319)
at org.apache.pdfbox.text.PDFTextStripper.writeText(PDFTextStripper.java:266)
at org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:117)
... 43 common frames omitted
Caused by: org.apache.tika.exception.TikaException: Tesseract is not available. Please set the OCR_STRATEGY to NO_OCR or configure Tesseract correctly
at org.apache.tika.parser.pdf.AbstractPDF2XHTML.doOCROnCurrentPage(AbstractPDF2XHTML.java:321)
at org.apache.tika.parser.pdf.AbstractPDF2XHTML.endPage(AbstractPDF2XHTML.java:418)
... 49 common frames omitted
我也尝试使用tess4j库,它使用File,但我需要从InputStream解析而不缓存到硬盘。 有谁可以帮我配置Apache Tika和Tesseract?
答案 0 :(得分:0)
Tika 在幕后使用 google tesseract 来对文本进行 ocring。 tess4j 对此没有帮助,它也是 tesseract 包装器 有两种可能的解决方案
如果您愿意,您可以查看我使用 tika 服务器的示例 Java 项目:https://github.com/marekkapowicki/nlp