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

我使用itext生成PDF文档。文档分为两部分。第一部分应具有不同的页脚,第二部分应具有不同的页脚。如何解决此问题。我已经尝试过以下代码块:

ByteArrayOutputStream fileOut = new ByteArrayOutputStream();
Document document = new Document(PageSize.A4,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);
....
g8bp8 回答:如何在Itext Pdf文档中为不同的页面设置不同的页脚

您的方法将不起作用,因为每次您创建新的PdfWriter时,都会启动一个新的pdf文件。因此,您有两个pdf编写者创建了单独的pdf,它们都写入同一文件。因此,您将获得一个大杂烩,如果结果可以完全以pdf格式打开,您将很幸运!

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

Document document = new Document(PageSize.A4,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);
.....

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

本文链接:https://www.f2er.com/3139590.html

大家都在问