我正在使用将PDF文件解析为文本。一些PDF文件可以包含扫描文档。Apache使用Tesseract将文本识别为图像。但是没有带有Tesseract的jar库,用户应该在操作系统中安装Tesseract作为独立的应用程序。如果不安装Tesseract,我如何使用Apache中的Tesseract?我尝试将tesseract文件夹添加到类路径中,并进行如下配置:
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库,它使用文件,但我需要从InputStream解析而不缓存到硬盘驱动器。有人能帮我配置Apache和Tesseract吗?
发布于 2021-08-05 13:08:54
Tika在幕后使用google tesseract来读取文本。tess4j对此没有帮助,它也是tesseract包装器,有2种可能的解决方案。
如果需要,可以检查我使用tika服务器的示例java项目:https://github.com/marekkapowicki/nlp
https://stackoverflow.com/questions/46253889
复制相似问题