Изнутри iText вам необходимо использовать классы из пакета com.itextpdf.text.pdf.parser.
В частности, вам нужно использовать PdfTextExtractor с пользовательским TextExtractionStrategy, который проверяет шрифтназвание.Жирные шрифты, как правило, имеют в своем названии «жирный» мир.
Потенциальные проблемы: 1) Не все, что выглядит как текст, отображается шрифтами и буквами.Это могут быть пути или растровое изображение.Единственный способ извлечь такой текст с помощью OCR, и нет способа получить информацию о шрифте.2) Шрифтовая кодировка.Байты, которые отображаются на глифы, которые вы видите в PDF, могут не иметь карты из этих байтов в фактическую информацию о символах.3) Не весь текст, выделенный жирным шрифтом, выполнен жирным шрифтом.Некоторый жирный текст создается путем поглаживания контура текста довольно тонкой линией, а также обычной заливки.В этом случае режим визуализации текста будет установлен на «обводка и заливка» вместо обычного «заливка».Это довольно редко, но это случается время от времени.
Простой способ проверить наличие проблем 1 и 2 - попытаться скопировать и вставить текст в Reader / Acrobat.Если вы не можете выбрать его, это почти наверняка пути или изображения.Если вы можете выбрать его, но символы вставляются как случайный мусор при вставке, тогда iText будет иметь тот же мусор.
Проблема 3 не так сложно проверить на программном уровне, хотя вы должны справиться с этимна индивидуальной основе.Вам нужно вызвать TextRenderInfo.getTextRenderMode ().0 - это заполнение (стандартный способ работы), а 2 - «обводка и заливка».
Таким образом, ваша TextExtractionStrategy может заглушить beginTextBlock, endTextBlock, renderImage и getResultantText.В вашей реализации renderText вы должны будете проверить имя шрифта (для "жирного шрифта", без учета регистра) и режим отображения текста.Если это так, то это часть ваших заголовков.
Все это предполагает, что вы имеете дело с произвольными файлами PDF.Если все ваши PDF-файлы взяты из одного источника, вы можете начать обрезку углов.Я оставлю это как упражнение для читателя.