如何使用itext在pdf中添加多个页眉和页脚

在我的pdf文件中,我需要有多个页眉和页脚。在页眉中,我希望标题标题位于左侧,而某些文本位于中心。

同样,在页脚中,我需要在左侧打印公司名称,在中心打印页码,并在右侧打印有关表格内容的一些信息。

我看过很多文章,但是我没有正确的想法来创建它,有人请帮助我提供一些示例代码片段。

回答:

页眉和页脚应使用“页面事件”添加。如果您需要一些示例,只需在官方网站上查找关键字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章,您将获得正确的想法,其中引用了我所引用的代码片段。

以上是 如何使用itext在pdf中添加多个页眉和页脚 的全部内容, 来源链接: utcz.com/qa/430276.html

回到顶部