Ты не.PDF-файлы не имеют стилей.Они имеют «текущее графическое состояние», которое включает в себя:
- текущую матрицу преобразования (CTM).
- цвета обводки и заливки
- обтравочный контур
- font & size
- наборы других текстовых состояний (интервал между символами, интервал между словами, начальный, режим визуализации текста ...)
- Включение отдельной матрицы преобразования текстакоторый сочетается с CTM.
Итак, сначала вы должны отследить все эти вещи (которые iText в основном может сделать для вас).Затем вы должны определить, насколько большой текст «H1», и зафиксировать весь текст с размером экрана такого размера, принимая во внимание CTM, текстовую матрицу и размер шрифта (что iText снова сделает для вас, IIRC).
И просто чтобы сделать жизнь более интересной для таких людей, как вы, вполне возможно, что текст, на который вы смотрите, вовсе не является текстом.Это могут быть пути или растровое изображение ... в этот момент вам нужно OCR, и я не думаю, что вы получите много информации о размере с OCR.
Вам нужно будет написатьTextRenderListener
, который определяет окончательный размер данного фрагмента текста (и является ли он частью последнего фрагмента) и отфильтровывает все, что слишком мало.Затем вы создадите свое оглавление на основе найденного текста.