各pdfページのタイトルが現在のページ番号に基づいてカスタマイズされるpdfを作成しています。たとえば、1 ページ目のタイトルは「最初のページ」、2 ページ目のタイトルは「2 ページ目」など...
ここで行うことは、タイトルを PdfPTable に追加することです。次に、他の多くのものも PdfPTable に追加します。したがって、この PdfPTable には複数ページのデータが含まれます。最後に、この大きな PdfPTable オブジェクトをドキュメントに追加します。ここで、PdfPageEventHelper の onStartPage() メソッドを使用して現在のページ番号を取得し、各ページのタイトルをカスタマイズできるようにします。
問題は、その大きな PdfPTable オブジェクトをドキュメントに追加するまで onStartPage() がトリガーされないことです。つまり、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;
}
}