我正在创建一个 pdf,其中每个 pdf 页面的标题将根据当前页码进行自定义。例如,第一页的标题是“第一页”,第二页的标题是“第二页”,以此类推...
我们现在要做的是将标题添加到 PdfPTable,然后我们还将许多其他内容添加到 PdfPTable,因此此 PdfPTable 包含几页数据。最后我们将这个大的 PdfPTable 对象添加到文档中。现在我们要使用 PdfPageEventHelper 中的 onStartPage() 方法来获取当前页码,这样我们就可以自定义每个页面的标题。
问题是 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;
}
}