Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为Itext Pdf文档中的不同页面设置不同的页脚_Java_Itext - Fatal编程技术网

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

Java 如何为Itext Pdf文档中的不同页面设置不同的页脚,java,itext,Java,Itext,我用itext生成一个PDF文档。文档有两部分。第一部分应该有不同的页脚,第二部分应该有不同的页脚。如何解决此问题。我已经尝试了以下代码块: ByteArrayOutputStream fileOut = new ByteArrayOutputStream(); Document document = new Document(PageSize.A4, 36, 36, 36, 145); FooterPageEvent1 event1 = new FooterPageEvent1(); Pdf

我用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,它们都在写入同一个文件。因此,您将得到一个大杂烩作为输出,如果结果可以以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);
.....

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

由于每次创建新的
PdfWriter
时,都会启动一个新的pdf文件,因此您的方法不起作用。因此,有两个pdf编写器创建单独的pdf,它们都在写入同一个文件。因此,您将得到一个大杂烩作为输出,如果结果可以以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);
.....
或者,您可以使用布尔属性实现单页事件侦听器,该属性根据属性的当前值创建一个或另一个页脚。在文档部分之间,只需切换该属性即可