我正在创建一个pdf,其中每个pdf页的标题将根据当前的页码定制。例如,在第一页标题是“第一页”,在第二页标题是“第二页”,等等.
我们现在要做的是将标题添加到PdfPTable中,然后向PdfPTable添加许多其他内容,因此PdfPTable包含了几个页面的数据。最后,我们将这个大型PdfPTable对象添加到文档中。现在,我们希望使用PdfPageEventHelper中的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;
}
}发布于 2013-11-07 08:39:40
我有不止一个答案。我不知道哪一个适用于你的具体情况:
onStartPage()方法中添加内容。如文档所示,所有内容都应该添加到onEndPage()方法中。您提供的代码示例并没有真正说明问题。你能不能重新表述一下这个问题,因为我不确定我的答案是否能触及问题的核心。
https://stackoverflow.com/questions/19823946
复制相似问题