Я использую Itext 5.5 и сейчас у меня есть пользовательская реализация PdfPageEventHelper
, которая добавляет нижний колонтитул на страницу, содержащую информацию о номере страницы.
Недавние изменения в моем приложении приводят к существованию необходимыхсноски.То, как я создаю PDF (динамически создаваемый из списка компонентов), делает практически невозможным определение того, какая страница содержит какие элементы, поскольку это является частью настраиваемых параметров стиля.
Однако мне нужно добавить поясненияк сноскам.Подход, который я сейчас использую, заключается в том, чтобы просто уведомить PdfPageEventHelper
, что где-то в документе есть хотя бы один элемент, которому нужна (в настоящее время только) сноска, и затем я добавляю пояснительную сноску к каждые Стр.
Это то, чего я хочу избежать, поскольку будущее может принести больше сносок и объяснений.Итак, вопрос:
Можно ли напрямую проанализировать содержимое текущей страницы и отсканировать текст маркера?Или есть другой способ узнать, нуждается ли текущая страница в пояснительной сноске?
Мои неудачные подходы до сих пор (всего в onEndPage(PdfWriter, Document)
):
PdfContentByte cb = writer.getDirectContent();
PdfReader reader = new PdfReader(cb.toPdf(writer());
// this led to InvalidPdfException
----
ColumnText ct = new ColumnText(cb);
ct.getCompositeElements();
// returned null, I expected the current page contents
----
OutputStreamCounter oc = writer.getOs();
// did not expose any useful methods. also, cannot read from OutputStream
Поиск в Google привел к появлению десятковРезультаты - как добавить номер страницы или как добавить статический, пользовательский заголовок документа.Но ничего зависящего от страницы.
О, и это, что не очень полезно: Добавление условного обозначения PDF в определенные страницы в многостраничном документе PDF
которая кажется в основном той же самой проблемой, что и моя.