обрабатывать события страницы в itext разрыва страницы

я использую itext для создания pdf и хочу знать, что происходит за сценой, когда элемент превышает размер страницы.

я использую PdfPageEventHelper, чтобы узнать, добавлена ​​ли в этом случае новая страница.

полученный PDF-файл показывает новую страницу, но не запускает мои функции для таких событий, как onStartPage, onEndPage.


person Brijesh Chaubey    schedule 24.12.2014    source источник
comment
Покажи нам свой код. Существует множество примеров, доказывающих, что onStartPage() и onEndPage() срабатывают. Взгляните на раздел События страницы в Лучшие вопросы по iText на StackOverflow. Примеры.   -  person Bruno Lowagie    schedule 24.12.2014
comment
я попробовал еще раз и нашел, что это работает, но все еще есть вопрос о разнице между NEWPAGE и NEXTPAGE   -  person Brijesh Chaubey    schedule 26.12.2014


Ответы (1)


Я использую PdfPageEventHelper и у меня нет с этим проблем. При запуске новой страницы метод onEndPage() вызывается до инициализации новой страницы, а метод onStartPage() вызывается после инициализации новой страницы.

Вы можете вызвать новую страницу в своем коде следующим образом:

document.newPage();

Или метод newPage() может запускаться неявно, например, когда вы добавляете контент с помощью document.add(), размер которого превышает размер страницы.

Ваше утверждение о том, что такие функции, как onEndPage() и onStartPage(), не срабатывают, не может быть подтверждено. Наоборот: у нас есть множество примеров, доказывающих обратное, некоторые из которых собраны в книге Лучшие вопросы iText на StackOverflow.< /а>

В комментариях вы говорите, что у вас есть вопрос о разнице между NEWPAGE и NEXTPAGE. Это очень странный вопрос, так как я не знаю, зачем вам вообще нужны эти объекты.

Chunk.NEXTPAGE — это специальный Chunk, который используется внутри iText. Его можно использовать для вызова метода newPage() путем добавления объекта.

Например:

document.add(Chunk.NEXTPAGE);

является эквивалентом:

document.newPage();

Последний метод является предпочтительным способом запуска новой страницы, объект NEXTPAGE используется внутри в очень специфических случаях использования.

Что касается Chunk.NEWPAGE, это всего лишь String (значение "NEWPAGE"). Этот String является ключом атрибута, используемым для идентификации фрагмента NEXTPAGE.

Это принадлежит внутренней кухне iText. Как пользователь iText, вам не стоит об этом беспокоиться.

person Bruno Lowagie    schedule 27.12.2014