Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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中章节内的新页面_Java_Pdf_Formatting_Itext - Fatal编程技术网

Java iText中章节内的新页面

Java iText中章节内的新页面,java,pdf,formatting,itext,Java,Pdf,Formatting,Itext,我有一个包含几个章节的大章节。我需要拆分一部分内容,以使其更美观和可读。在预期的分页符之前,我尝试使用setPageEmpty(false)和newPage(),但页面没有分页符: Document doc = new Document(); PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(filename)); writer.setPageEvent(new PageEventHandler(doc)); d

我有一个包含几个章节的大章节。我需要拆分一部分内容,以使其更美观和可读。在预期的分页符之前,我尝试使用setPageEmpty(false)和newPage(),但页面没有分页符:

Document doc = new Document();
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(filename));
writer.setPageEvent(new PageEventHandler(doc));
doc.open();

Chapter chapter = new ChapterAutoNumber("Main info");
chapter.add(new Paragraph("Lorem ipsum dolor sit amet", font));
writer.setPageEmpty(false);
itextDocument.newPage();
在这段代码之后,我将继续填写本章内容,最后我将写:

doc.add(chapter);

但在第一段之后,我需要一个分页符。如何分割节内容?我使用iText 5.5

如果您想在
章节
中添加新页面,那么使用
newPage()
方法是没有意义的。请看以下代码段:

Chapter chapter = new ChapterAutoNumber("Main info");
chapter.add(p1);
document.newPage();
chapter.add(p2);
document.add(chapter);
你看到了什么

您会看到一章中填充了对象
p1
p2
。两个对象,
p1
p2
直到最后一行才呈现到
文档中
仅当触发此行时,
p1
才实际添加到
文档中,因为文档在添加前不知道
章节发生了什么

这意味着
document.newPage()
在呈现
p1
之前触发,而不是在
p1
p2
之间触发

要解决此问题,需要使用
Chunk.NEXTPAGE
对象:

Chapter chapter = new ChapterAutoNumber("Main info");
chapter.add(p1);
chapter.add(Chunk.NEXTPAGE);
chapter.add(p2);
document.add(chapter);

这个特殊的
Chunk
对象现在是
chapter
对象的一部分,在
p1
p2
之间会触发一个新页面,如果您想在
chapter
中添加一个新页面,那么使用
newPage()
方法是没有意义的。请看以下代码段:

Chapter chapter = new ChapterAutoNumber("Main info");
chapter.add(p1);
document.newPage();
chapter.add(p2);
document.add(chapter);
你看到了什么

您会看到一章中填充了对象
p1
p2
。两个对象,
p1
p2
直到最后一行才呈现到
文档中
仅当触发此行时,
p1
才实际添加到
文档中,因为文档在添加前不知道
章节发生了什么

这意味着
document.newPage()
在呈现
p1
之前触发,而不是在
p1
p2
之间触发

要解决此问题,需要使用
Chunk.NEXTPAGE
对象:

Chapter chapter = new ChapterAutoNumber("Main info");
chapter.add(p1);
chapter.add(Chunk.NEXTPAGE);
chapter.add(p2);
document.add(chapter);

这个特殊的
对象现在是
章节
对象的一部分,在
p1
p2
之间会触发一个新页面!非常感谢您的解释和帮助。我们可以制作
Chunk.NEXTPAGE
成为景观吗?有可能在新页面中进行页面旋转吗?@Blaise没有,我认为在iText 5或更早版本中不可能。我们在iText 7中解决了这个问题。我明白了!非常感谢您的解释和帮助。我们可以制作
Chunk.NEXTPAGE
成为景观吗?有可能在新页面中进行页面旋转吗?@Blaise没有,我认为在iText 5或更早版本中不可能。我们在iText 7中解决了这个问题。