2012-01-13 14 views
1

私がやろうとしていることが可能であるかどうかは分かりませんし、何か非常に重要でないことが多すぎるかもしれません。 PDFを作成するサーブレットがあります。私は作成したPDFに書き込むためにiTextを使用しています。私のpdfでは、文書のサイズを変更できる動的な表があります。次のページに移動する必要があるときはいつでも、文書の最後に「次のページに続く」を印刷したいと思います。問題は、ドキュメントでページ区切りがどこに発生するのかわからないことです。次のPDFページの表を参照して、テキストを間に印刷してください

可能であれば、これにコードを追加するのは楽しいことです。また、これがはっきりしない場合は、お気軽に質問してください。

EDIT:おそらく私自身と話しているかもしれませんが、これが可能だと思う唯一の方法は、新しいページが作成されたばかりであることを認識する方法がある場合です。

答えて

0

あなたのPDFジェネレータクラスでこのスニペットを適用に試すことができます:FYI

private static final float FOOTER_MARGIN = 15; 
private static final float PAGE_MARGIN_LEFT = 36; 
private static final float PAGE_MARGIN_RIGHT = 36; 
private static final float PAGE_MARGIN_BOTTOM = 36 + FOOTER_MARGIN; 
private static final float PAGE_MARGIN_TOP = 36; 
private static final Rectangle PAGE_SIZE = PageSize.A4; 

//Put this in your generator method 
//.. 
Document document = new Document(PAGE_SIZE, 
     PAGE_MARGIN_LEFT, PAGE_MARGIN_RIGHT, PAGE_MARGIN_BOTTOM, MARGIN_TOP); 
PdfWriter writer = PdfWriter.getInstance(document, OUTPUT_STREAM); 
writer.setPageEvent(new HeaderFooter()); 
//.. 

private class HeaderFooter extends PdfPageEventHelper { 

    @Override 
    public void onEndPage(PdfWriter writer, Document document) { 
     Phrase footerText = new Phrase("Continued On Next Page"); 
     ColumnText.showTextAligned(
       writer.getDirectContent(), 
       Element.ALIGN_LEFT, footerText, 
       PAGE_MARGIN_LEFT, PAGE_MARGIN_BOTTOM - FOOTER_MARGIN, 0); 
    } 
} 

iText examplesの束はフッターためのあなたのケースの検索には、があります。お役に立てれば。

0

おそらくsetSkipLastFooter(ブール値)を使用できます。こうすることで、最後のページを除くすべてのページに続きのテキストを含むテーブルのフッター行が印刷されます。テーブルのsetFooterRowsを確実にする必要があります。

PdfPageEventHelperを使用すると、終了ページイベントを含むさまざまなページイベントをインターセプトできます。 onEndPageメソッドの中で、 "次のページに続く"テキストをドキュメントに追加することができます。

関連する問題