Я играл с помощью метода PdfBox и PDFTextStripperByArea.
Мне удалось извлечь информацию, если текст жирный или курсив, но я не могу получить информацию подчеркивания.
Насколько я понимаю в PDF, подчеркивание делается путем рисования линий. Поэтому теоретически я должен получить некоторую информацию о строках где-то вокруг текста. Предоставляя эту информацию, я мог бы узнать, подчеркивается ли какой-либо текст или в таблице.
Вот мой код:
List<TextPosition> textPos = charactersByArticle.get(index);
for (TextPosition t : textPos)
{
if (t.getFont().getFontDescriptor() != null)
{
if (t.getFont().getFontDescriptor().getFontWeight() > BOLD_WEIGHT ||
t.getFont().getFontDescriptor().isForceBold())
{
isBold = true;
}
if (t.getFont().getFontDescriptor().isItalic())
{
isItalic = true;
}
}
}
Я попытался воспроизвести объект PDGraphicsState, который обрабатывается в методе processEncodedText в классе PDFStreamEngine, но нет информации о найденных там строках.
Любые предложения, по которым эта информация может быть получена из?