问题:我有一个包含许多子文件夹的大文件夹,其中包含许多pdf文件。其中一些已经有了OCR。其中一些人没有。所以我想写一个Java程序来过滤非OCR PDF并将它们复制到一个热文件夹。
我测试了20个文件,它们的共同之处在于,如果你用编辑器打开它们,你可以找到“font”和OCR这个词,你就无法在非OCR中找到它。我现在的问题是:如何使用PDFbox 2.0.0实现此检查?我发现的所有解决方案似乎都不适用于旧版本。而且我无法在文档中找到解决方案。 (这显然是我的错)
提前致谢。
答案 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);