Мы работаем над программой, похожей на корзину для покупок, на Java. Одним из требований является то, что квитанция, отправляемая пользователям, должна быть в формате pdf и может состоять из нескольких страниц, поэтому требуется нумерация страниц. Мы используем iText для создания PDF-файла и HTML для создания макета квитанции.
Я знаю, что могу добавить нижний колонтитул с помощью PageEvents и добавить HTML-код нижнего колонтитула в метод onEndPage()
.
Мне было интересно, есть ли способ добавить разбивку на страницы в HTML-текст нижнего колонтитула квитанции, которую получат наши пользователи. (Страница 1 из n, Страница 2 из n, ... Страница n из n).
Обратите внимание. Пользователи также могут редактировать нижний колонтитул квитанций, которые они могут получить, чтобы изменить содержимое конца страницы.
Например:
Нижний колонтитул клиента А для его квитанции может быть следующим:
<div class="left-footer companyLogo">...</div>
<div class="center-footer pagination">PAGINATION</div>
<div class="right-footer companyName">...</div>
В то время как нижний колонтитул клиента B может быть:
<div class="left-footer Disclaimer">...</div>
<br/>
<div class="left-footer pagination">PAGINATION</div>
<div class="right-footer date-footer">$dateToday</div>
И тогда $variableName будет проанализирован пользовательским парсером шаблонов.
onEndPage
HTML с помощьюXMLWorker
. Однако, насколько я знаю, вам нужно будет реализовать собственный тег, который вставляет шаблон, в который в конце обработки документа записывается общее количество страниц в документе. Я не так глубоко разбираюсь в использованииXMLWorker
, поэтому, возможно, кто-то еще может дать более подробные советы? - person mkl   schedule 09.03.2016