如何使用pdfbox 2.0.0检测扫描文档中的OCR?

时间:2015-11-10 07:35:42

标签: java apache pdf ocr pdfbox

问题:我有一个包含许多子文件夹的大文件夹,其中包含许多pdf文件。其中一些已经有了OCR。其中一些人没有。所以我想写一个Java程序来过滤非OCR PDF并将它们复制到一个热文件夹。

我测试了20个文件,它们的共同之处在于,如果你用编辑器打开它们,你可以找到“font”和OCR这个词,你就无法在非OCR中找到它。我现在的问题是:如何使用PDFbox 2.0.0实现此检查?我发现的所有解决方案似乎都不适用于旧版本。而且我无法在文档中找到解决方案。 (这显然是我的错)

提前致谢。

1 个答案:

答案 0 :(得分:2)

以下是如何确定字体是否位于页面的顶层:

    PDDocument doc = PDDocument.load(new File(...));
    PDPage page = doc.getPage(0); // 0 based
    PDResources resources = page.getResources();
    for (COSName fontName : resources.getFontNames())
    {
        System.out.println(fontName.getName());
    }
    doc.close();

Re:mkl建议,以下是如何提取文字:

    PDFTextStripper stripper = new PDFTextStripper();
    stripper.setStartPage(1); // 1 based
    stripper.setEndPage(1);
    String extractedText = stripper.getText(doc);
    System.out.println(extractedText);