页眉和页脚应使用“页面事件”添加。如果您需要一些示例,只需在官方网站上查找关键字header
/ footer。
只需创建一个扩展
PdfPageEventHelper并实现该
onEndPage()方法的类。阅读文档的人不会常犯使用该
onStartPage()方法的错误,但是也许您忽略了此方法,因此,我将其添加为一个额外的警告。
使用方法将类的实例添加到PdfWriter对象
setPageEvent()。
我不知道我是否理解“多个”标头的含义。如果您有多个页面事件实现,则可以使用
setPageEvent()方法将它们全部添加,它们将全部执行。如果要从一个页面事件实现切换到另一个页面事件实现,则需要先使用
setPageEvent(null)。
也许您希望不同页面的页眉不同,只需在页面事件实现中使用成员变量并在此过程中进行更改即可。在其中一个名为MovieHistory2的书籍示例中,标题的文本存储在
String名为的数组中
header。
页眉的位置取决于页码:
public void onEndPage(PdfWriter writer, document document) { Rectangle rect = writer.getBoxSize("art"); switch(writer.getPageNumber() % 2) { case 0: ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_RIGHT, header[0], rect.getRight(), rect.getTop(), 0); break; case 1: ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_LEFT, header[1], rect.getLeft(), rect.getTop(), 0); break; } ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase(String.format("page %d", pagenumber)), (rect.getLeft() + rect.getRight()) / 2, rect.getBottom() - 18, 0); }对于偶数页码,标题添加到右侧;左边的奇数页码。如您所见,页脚居中。
您还提到了标题表。如果要使用表格,请查看MovieCountries1示例。
您说:“我看过这么多帖子,但是我没有正确的想法来创建它。” 通过阅读文档,尤其是“ iText in Action-Second
Edition”一书的第5章,您将获得正确的想法,其中引用了我所引用的代码片段。



