从Apache Tika extract scanned PDF files开始,扫描文档的效果非常好。但问题是,它占用了太多时间以及CPU利用率。
在我的情况下,15 MB
文件23 pages
占用~4.5 minute
,这太高了。请在下面找到我的工作代码,
Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);
TesseractOCRConfig config = new TesseractOCRConfig();
PDFParserConfig pdfConfig = new PDFParserConfig();
pdfConfig.setExtractInlineImages(true);
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);
Metadata metadata = new Metadata();
parser.parse(inputStream, handler, metadata, parseContext);
String content = handler.toString();
如何让它更优化/更快?有什么建议吗?
答案 0 :(得分:0)
正如@Gagravarr在评论中提到的那样,这并不是Tika
的慢点,因为Tesseract
是消耗CPU的过程。
要处理此问题,我已使用FIFO
方法在另一台服务器上分离了此过程。这样一次只能处理一个文件。