【问题标题】:Add OCR layer to existing PDF without the need to write to file system无需写入文件系统即可将 OCR 层添加到现有 PDF
【发布时间】: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 的文件输入,并从该方法返回,从而无需涉及文件系统。这可以实现吗?

【问题讨论】:

    标签: java tesseract tess4j


    【解决方案1】:

    不,不能这样做。 Tesseract 的TessResultRenderer API 输出到物理文件,因此需要outputbase 输入参数来指定输出文件的名称。

    【讨论】:

      猜你喜欢
      • 2010-10-15
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多