2017-02-02 4 views
0

私はいくつかのセクションを含む大きな章を持っています。 1つのセクションのコンテンツを分割して、よりきれいで読みやすいようにする必要があります。このコードは、私は章の内容を埋めるために上のつもりだと最終的に私はつもりだ後iTextの章内の新しいページ

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(); 

:休憩ではない私は予想改ページの前にsetPageEmpty(偽)とNEWPAGE()を使用しようとしましたが、ページがありません書く:

doc.add(chapter); 

しかし、最初の段落の後に改行が必要です。セクションコンテンツを分割する方法iText 5.5を使用しています

答えて

3

新しいページを追加する場合はnewPage()メソッドを使用する意味がありませんChapterです。以下のスニペットをご覧ください。

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

あなたは何を見ますか?

チャプタにオブジェクトp1p2が入力されています。文書はと何が起こるかを認識していないので、document.add(chapter);この行がトリガされた場合にのみ、p1が実際にdocumentに追加された:非常に最後の行までdocumentをレンダリングされません両方のオブジェクト、p1p2、追加する前にchapterと入力してください。

これはdocument.newPage()p1がトリガされることを意味する代わりp1p2と、レンダリングされます。

は、この問題を解決するには、Chunk.NEXTPAGEオブジェクトを使用する必要があります。

特別Chunkオブジェクトは今chapterオブジェクトの一部であり、新しいページがp1p2の間でトリガされることを
Chapter chapter = new ChapterAutoNumber("Main info"); 
chapter.add(p1); 
chapter.add(Chunk.NEXTPAGE); 
chapter.add(p2); 
document.add(chapter); 

+0

私は見る!説明とスニペットをありがとうございました – mogilka

+0

'Chunk.NEXTPAGE'をランドスケープにすることはできますか?新しいページでページを回転させることは可能ですか? – Blaise

+0

@Blaiseいいえ、私はそれがiText 5以前では可能ではないと思います。これをiText 7で修正しました。 –

関連する問題