PDFBox: есть ли альтернативы методу getFontNames для получения шрифтов, используемых в PDF - PullRequest
0 голосов
/ 28 мая 2018

Мой проект касается отсканированных 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() ничего не возвращает?

Любая помощь приветствуется!

...