我已经编写了一些代码,使用Tesseract(Tess4J)对PDF执行OCR:
public void DoOCRAnalyse(String From) throws FileNotFoundException {
Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping
File[] files=PdfUtilities.convertPdf2Png(new File(From));
for (File f:files) {
try {
String result = instance.doOCR(f);
/*String result = instance.doOCR(take File or BufferedImage); */
SearchForSVHC(result,SvhcList);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}
}
它识别文本,这很棒,但我的问题是它需要图像在磁盘上的目录中。如何在不需要磁盘上的文件的情况下将BufferedImage
或File
传递给方法doOCR()
?
答案 0 :(得分:1)
您正在将File
对象传递给doOCR
。当您致电convertPdf2Png
时,会调用GhostScript
将PDF文件转换为一个或多个PNG文件。如果需要,您当然可以在OCR之后删除它们,例如,通过在f.Delete()
块中执行finally
。