在我的PDF我需要有一个以上的报头和footer.In头我想标题上的中心左边和一些文字标题。
同样,在页脚我需要打印在左边我的公司名称,页码上的中心,就在右侧在我的表内容的一些信息。
我见过这么多的职位,但我没有得到正确的理念,为创建this.Somebody请帮我一些示例代码snippets.Thanks
在我的PDF我需要有一个以上的报头和footer.In头我想标题上的中心左边和一些文字标题。
同样,在页脚我需要打印在左边我的公司名称,页码上的中心,就在右侧在我的表内容的一些信息。
我见过这么多的职位,但我没有得到正确的理念,为创建this.Somebody请帮我一些示例代码snippets.Thanks
页眉和页脚应该使用页面事件“被添加。 如果你需要一些例子,只是寻找关键字页眉 / 页脚的官方网站。
只要创建一个扩展类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例子。
你说:“我已经见过这么多的职位,但我没有得到正确的理念,为创建这个。” 从中提取的代码片段,我指的是 - 你会通过阅读文档,更具体的书的第5章“第二版的iText在行动”得到正确的想法。