Java 如何使用iText7对多页PDF进行OCR?

Java 如何使用iText7对多页PDF进行OCR?,java,pdf,itext,ocr,tesseract,Java,Pdf,Itext,Ocr,Tesseract,我使用了iText PdfRender,它将非OCR PDF转换为图像,然后我使用iText PdfOcr将该图像转换为OCR的PDF。有没有一个工具可以让我一步完成这个过程 如果有一些关于如何使用PdfRender处理多页PDF的文档也会很有帮助,我似乎找不到这些文档。下面是我用来将一幅图像转换为OCR PDF文档的代码 import com.itextpdf.pdfocr.OcrPdfCreator; import com.itextpdf.pdfocr.tesseract4.Tessera

我使用了iText PdfRender,它将非OCR PDF转换为图像,然后我使用iText PdfOcr将该图像转换为OCR的PDF。有没有一个工具可以让我一步完成这个过程

如果有一些关于如何使用PdfRender处理多页PDF的文档也会很有帮助,我似乎找不到这些文档。下面是我用来将一幅图像转换为OCR PDF文档的代码

import com.itextpdf.pdfocr.OcrPdfCreator;
import com.itextpdf.pdfocr.tesseract4.Tesseract4LibOcrEngine;
import com.itextpdf.pdfocr.tesseract4.Tesseract4OcrEngineProperties;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;


public class img2pdfocr {

    static final Tesseract4OcrEngineProperties tesseract4OcrEngineProperties = new Tesseract4OcrEngineProperties();
    private static List LIST_IMAGES_OCR = Arrays.asList(new File("image1.jpg"));
    private static String OUTPUT_PDF = "F:\\ITEXT_workspace\\jumpstart\\bizdoc.pdf";

    public static void main(String[] args) throws IOException {
        final Tesseract4LibOcrEngine tesseractReader = new Tesseract4LibOcrEngine(tesseract4OcrEngineProperties);
        tesseract4OcrEngineProperties.setPathToTessData(new File("F:\\ITEXT_workspace\\jumpstart\\TESS_DATA_FOLDER"));

        OcrPdfCreator ocrPdfCreator = new OcrPdfCreator(tesseractReader);
        try (PdfWriter writer = new PdfWriter(OUTPUT_PDF)) {
            ocrPdfCreator.createPdf(LIST_IMAGES_OCR, writer).close();
        }
    }

}
编辑


正如在评论中指出的,我不需要使用pdfRender,iText core本身可以用于从PDF中提取图像。用于代码。您可以查看此

首先,您的输入文件是什么?您提到它们是非OCR PDF。它们是扫描文件吗?如果是,并且如果扫描仪通过将单个位图图像放入每个页面来创建它们,那么比渲染更好的选择是提取,不是吗?您不需要pdfRender将PDF文件转换为图像。我猜您有一个PDF文件,它就是am图像,但您可以使用Core提取该图像,然后运行它pdfOCR@mkl是的,它们是扫描过的文件。我是新手,所以如果你能告诉我提取与渲染有什么不同,以及我如何使用iText(或任何其他模块)进行提取,那会很有帮助。@AndréLemos这些文件是多页PDF,其中每一页都是一幅图像(扫描仪将输出的图像)。据我所知,pdfRender是itext core的一部分,因此我不太明白如果不是pdfRender,我如何使用core来提取图像。@ayman_006,pdfRender是core的一个附加组件。您可以自由地使用它将PDF渲染为图像,但只使用Core从PDF中提取图像更有意义。你可以查看这个或这个GitHub如何从PDF文件中提取图像。首先,你的输入文件是什么?您提到它们是非OCR PDF。它们是扫描文件吗?如果是,并且如果扫描仪通过将单个位图图像放入每个页面来创建它们,那么比渲染更好的选择是提取,不是吗?您不需要pdfRender将PDF文件转换为图像。我猜您有一个PDF文件,它就是am图像,但您可以使用Core提取该图像,然后运行它pdfOCR@mkl是的,它们是扫描过的文件。我是新手,所以如果你能告诉我提取与渲染有什么不同,以及我如何使用iText(或任何其他模块)进行提取,那会很有帮助。@AndréLemos这些文件是多页PDF,其中每一页都是一幅图像(扫描仪将输出的图像)。据我所知,pdfRender是itext core的一部分,因此我不太明白如果不是pdfRender,我如何使用core来提取图像。@ayman_006,pdfRender是core的一个附加组件。您可以自由地使用它将PDF渲染为图像,但只使用Core从PDF中提取图像更有意义。您可以查看这个或这个GitHub如何从PDF文件中提取图像。