Я создаю pdf, где название каждой страницы pdf будет настроено на основе текущего номера страницы. Например, на первой странице заголовок «Первая страница», а на второй странице заголовок «Вторая страница» и т. Д.PdfPageEventHelper в iText
Что мы делаем сейчас, мы добавляем заголовок в PdfPTable , то мы добавим много других вещей в PdfPTable, так что этот PdfPTable содержит несколько страниц данных. Наконец, мы добавляем этот большой объект PdfPTable для документирования. Теперь мы хотим использовать метод onStartPage() в PdfPageEventHelper, чтобы получить текущий номер страницы, чтобы мы могли настроить заголовок для каждой страницы.
Проблема заключается в том, что объект onStartPage() не запускается, пока мы не добавим этот большой объект PdfPTable к документу, а это значит, что мы не можем сделать набор ресурсов для загрузки разных значений ключа до того, как объект PdfPTable будет добавлен в документ, не так ли? Любое предложение реализовать это?
-------------------- У нас есть коды, как показано ниже --------------------- ----------------
Phrase title = new Phrase();
title.add(new Chunk(bundle.getString(pdfNewPageEventHandler.getKey()), headerFont));
PdfPCell cell = new PdfPCell(new Paragraph(
new Phrase(title)));
.........
PdfPTable table = new PdfPTable(tableSize);
table.addCell(cell);
.........
document.add(table);
private class PdfNewPageEventHandler extends PdfPageEventHelper {
private int currentPageNum = 0;
private String key;
@Override
public void onStartPage(PdfWriter writer, Document document) {
currentPageNum = currentPageNum + 1;
if (currentPageNum == 1) {
key = "firstPage";
}
else if (currentPageNum == 2) {
key = "secondPage";
}
}
public String getKey() {
return key;
}
}
Возможно, вы захотите добавить это название на страницу в событии onEndPage в том же прослушивателе. – mkl