PdfPageEventHelper в iText
Я создаю PDF, где заголовок каждой страницы PDF будет настроен на основе номера текущей страницы. Например, на 1-й странице заголовок «Первая страница», а на 2-й странице заголовок «Вторая страница» и т. Д.
Что мы делаем сейчас, так это добавляем заголовок в 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;
}
}