Мой проект касается отсканированных PDF-файлов, которые мне нужно обнаружить.Они могут иметь много разных «форм».Одним из них (который является конфиденциальным) является изображение с надписью «копия» напечатано поверх него.Конечно, штамп может быть любым на любом языке.
Из-за этой надписи на машинке, добавленной сверху, при разборе pdf-файла содержимое «копируется», поэтому его невозможно обнаружить как отсканированный PDF.Следовательно, основываясь на этом ТАК вопрос Сначала я пытаюсь найти все шрифты, встроенные в документ, с помощью следующего кода:
for (int i = 0; i < pageLimit; ++i) {
PDPage page = pdf.getPage(i);
PDResources res = page.getResources();
for (COSName c : res.getFontNames()){
System.err.println("The font is " + c.getName());
}
// There is at least one font in this pdf
if (res.getFontNames().iterator().hasNext()) {
return true;
}
}
Действительно, мне просто нужно знать, есть ли шрифты.Однако с этим файлом (и, возможно, с другими, которые я еще не тестировал) PDFBox ничего не возвращает для имен шрифтов, тогда как Evince сообщает "TimesNewRomanPS-BoldMT" и "TimesNewRomanPSMT", и даже PDFBox показывает:
ПРЕДУПРЕЖДЕНИЕ Использование резервного шрифта «LiberationSerif-Bold» для «TimesNewRomanPS-BoldMT» ПРЕДУПРЕЖДЕНИЕ Использование резервного шрифта «LiberationSerif» для «TimesNewRomanPSMT»
И все же, как я могу точно узнать, содержатся ли шрифты вPDF или нет, когда getFontNames()
ничего не возвращает?
Любая помощь приветствуется!