问题:我有一个很大的文件夹,里面有很多子文件夹,里面有很多pdf。其中一些已经在上面带有OCR。其中一些没有。因此,我想编写一个Java程序来过滤掉非OCR PDF并将其复制到热文件夹中。

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

提前致谢。

最佳答案

这是查找字体是否在页面顶层的方法:

    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();


回复:mkl建议,以下是提取文本的方法:

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

09-27 09:45