将 OCR 图层添加到现有 PDF,而无需写入文件系统



我正在尝试获取扫描的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 输出到磁盘上的特定位置。我正在尝试更改此设置,以便应用程序不需要将任何文件写入磁盘。我不确定这是否可以做到?

理想情况下,我想用多部分文件更改 ocrFile 的文件输入,并从此方法返回,从而消除了涉及文件系统的需要。这是可以实现的吗?

不,这是不可能的。Tesseract的TessResultRendererAPI输出到物理文件,因此需要outputbase输入参数来指定输出文件的名称。

最新更新