2016-10-19 9 views
0

私はサンプルで探しています:http://developers.itextpdf.com/question/how-add-html-headers-and-footers-pageiTextのHTMLヘッダーとフッター寸法

が、onEndPage方法

@Override 
    public void onEndPage(PdfWriter writer, Document document) { 
     try { 
      ColumnText ct = new ColumnText(writer.getDirectContent()); 
      ct.setSimpleColumn(new Rectangle(36, 832, 559, 810)); 
      for (Element e : header) { 
       ct.addElement(e); 
      } 
      ct.go(); 
      ct.setSimpleColumn(new Rectangle(36, 10, 559, 32)); 
      for (Element e : footer) { 
       ct.addElement(e); 
      } 
      ct.go(); 
     } catch (DocumentException de) { 
      throw new ExceptionConverter(de); 
     } 
    } 

に我々は、ヘッダ要素が行くれるractangleの高さと幅を知っている必要があります。私の場合は

コンパイル時に、私はHTMLが使用されるかわからないので、私は大きさを推定したい、またはあなたがDocumentオブジェクトを持っている幅とheght

+0

「PdfPageEventHelper」の実装を使用してディメンションを計算または渡しますか? –

答えて

1

を必要としない別のコードを使用しますメソッドのパラメータに設定します。あなたはまた、その余白のための書類を求めることができ

Rectangle pageSize = document.getPageSize(); 

:あなたはヘッダとフッタのために利用可能なスペースを定義するには、これらの値を使用することができます

float left = document.leftMargin(); 
float right = document.rightMargin(); 
float top = document.topMargin(); 
float bottom = document.bottomMargin(); 

あなたは、このような文書のページサイズを取得することができます。

など。ヘッダ:

Rectangle rect1 = new Rectangle(
    pageSize.left() + left, pageSize.top() - top, 
    pageSize.right() - right, pageSize.top()); 

またはフッター:

Rectangle rect2 = new Rectangle(
    pageSize.left() + left, pageSize.bottom(), 
    pageSize.right() - right, pageSize.bottom() + bottom); 

警告:あなたの長方形は、あなたが追加されているコンテンツには小さすぎることになる可能性があります。その場合、一部のコンテンツが失われます。それはgo()メソッドの戻り値を調べることによって発生したときにあなたが知っているだろう:

int status = ct.go(); 
boolean fits = !ColumnText.hasMoreText(status); 

fitsは何のコンテンツが失われなかったtrueある場合。 fitsfalseの場合は、コンテンツの追加方法を再検討してください。最初にシミュレーションモードでコンテンツを追加し、適合しているかどうかを確認してから実際に追加することができます。適合しない場合は、コンテンツを小さくする(フォントサイズを小さくするなど)ことで、コンテンツが収まるまで再試行します。ブルーノLowagieの返信で

0

私の目的は、ヘッダの長方形の正確な寸法を発見することですので、私は右上の余白に文書の本文を印刷することができます。

私はこれをしたくない:enter image description here

が、私は、実行時の前にHTMLヘッダーの内容を知らないので、私はどんなattempsを行わず、ヘッダ矩形の高さを取得する方法が必要です。

関連する問題