【发布时间】:2020-06-30 22:49:55
【问题描述】:
我正在尝试获取扫描的 PDF 文档并在顶部添加 OCR 层。我可以得到以下代码来实现这一点:
public void ocrFile(PDDocument pdDocument, File file) throws TesseractException, IOException {
PDFTextStripper pdfStripper = new PDFTextStripper();
String text = pdfStripper.getText(pdDocument);
Tesseract instance = new Tesseract(); // JNA Interface Mapping
File tessDataFolder = LoadLibs.extractTessResources("tessdata");
instance.setDatapath(tessDataFolder.getAbsolutePath());
List<RenderedFormat> list = new ArrayList<RenderedFormat>();
list.add(RenderedFormat.PDF);
String outputFileName = FilenameUtils.removeExtension(file.getAbsolutePath());
instance.createDocuments(file.getAbsolutePath(), outputFileName, list);
}
这会将带有 OCR 层的 PDF 输出到磁盘上的特定位置。我正在尝试更改此设置,以便应用程序不需要将任何文件写入磁盘。不知道能不能做到?
理想情况下,我想用 MultipartFile 更改 ocrFile 的文件输入,并从该方法返回,从而无需涉及文件系统。这可以实现吗?
【问题讨论】: