繁体   English   中英

如何为 Itext Pdf 文档中的不同页面设置不同的页脚

[英]How To Set Different Footers For Different Pages In Itext Pdf Document

我用 itext 生成了一个 PDF 文档。 文档有两部分。第一部分应该有不同的页脚,第二部分应该有不同的页脚。我该如何解决这个问题。我已经尝试过这个代码块:

ByteArrayOutputStream fileOut = new ByteArrayOutputStream();
Document document = new Document(PageSize.A4, 36, 36, 36, 145);

FooterPageEvent1 event1 = new FooterPageEvent1();
PdfWriter writer = PdfWriter.getInstance(document, fileOut);
writer.setPageEvent(event1);
document.open();
.....
FooterPageEvent2 event2 = new FooterPageEvent2();
PdfWriter writer2 = PdfWriter.getInstance(document, fileOut);
writer2.setPageEvent(event2);
....

您的方法不起作用,因为每次创建新的PdfWriter ,都会启动一个新的 pdf 文件。 因此,您有两个 pdf 编写器创建单独的 pdf,它们都写入同一个文件。 因此,您会得到一个大杂烩 output 并且如果结果可以作为 pdf 打开是幸运的!

相反,您可以在某个时间切换单个作者的页面事件侦听器:

Document document = new Document(PageSize.A4, 36, 36, 36, 145);
FooterPageEvent1 event1 = new FooterPageEvent1();
PdfWriter writer = PdfWriter.getInstance(document, fileOut);
writer.setPageEvent(event1);
document.open();
.....
writer.setPageEvent(null);
FooterPageEvent2 event2 = new FooterPageEvent2();
writer.setPageEvent(event2);
.....

或者,您可以使用 boolean 属性实现单页事件侦听器,根据属性的当前值创建一个或另一个页脚。 在文档部分之间,您只需切换该属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM