2011-07-08 18 views
2

xhtmlをPDFに変換して成功させましたが、すべてのページにヘッダーとページ数が追加されるという新しい要件がありました。我々は、フライングソーサーのnewsetリリースを使用しています。iTextフライングソーサーpdfヘッダーを無視してhtmlを無視する

私はここで例に従っ:http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html#page-specific-features

を...しかし、これは動作しません。ヘッダーは最初のページの左上になります。

私はr7バージョンを使用する場合、ヘッダーとページ番号付けは完全に動作しますが、渡されたhtmlはレンダリングされません。ただし、r8ではヘッダー\ページ番号は無視されますが、htmlは完全にレンダリングされます。テストに使用されるxHTMLは上記のURLからコピーされます。

誰かがアイデアを持っていれば私は非常にシンプルなものを見逃さなければならないことを知っている、私は非常に聞いていただければ幸いです。

答えて

1

私は同じ方法を使用していますが、すべてが完璧に動作しますが、フライングソーサーのヘッダー/フッターを使用しないようにして、PdfStamperを使用してPDFを生成した後に追加します。例。

public void modifyPdf(PdfStamper stamper) { 
     this.reader = stamper.getReader(); 

     PdfContentByte under = null; 

     PdfPTable header = null; 
     PdfPTable footer = null; 

     final int total = this.reader.getNumberOfPages(); 
     for (int page = 1; page <= total; page++) { 
      under = stamper.getUnderContent(page); 

      final PdfDocument doc = under.getPdfDocument(); 
      final Rectangle rect = this.reader.getPageSizeWithRotation(page); 

      header = ... //build your header 
      footer = ... // build your footer 

      final float x = 0; 

      //write header to PDF 
      if (header != null) { 
       float y = (rect.getTop() - 0); 
       header.writeSelectedRows(0, -1, x, y, under); 
      } 

      //write footer to PDF 
      if (footer != null) { 
       float y = (rect.getBottom() + 20); 
       footer.writeSelectedRows(0, -1, x, y, under); 
      } 
     } 
    } 

あなたはこのようなあなたのスタンパを構築することができます。

 final PdfReader reader = new PdfReader(/*your pdf file*/); 
     final PdfStamper stamper = new PdfStamper(reader, /* output */); 

は、あなたが、これが参考願っています。

+0

bgouldとエポックに感謝し、それはhttps://gist.github.com/経由で働いてました626264 –

2

私は、彼らがR8でこの機能を変更すると思います....代わりにこの方法を試してみてください。

https://gist.github.com/626264

+0

ありがとう、これはトリックでした! – mana

関連する問題