2016-12-22 6 views
0

ページに背景色を追加しようとしています。 ページの上部、左、右に1/3インチ幅のA4ページサイズを持っています。下余白は1インチです。ページの背景色を追加する方法余白スペースなしの5テキスト

Rectangle a4 = PageSize.A4; 
a4.setBackgroundColor(BaseColor.CYAN); 
Document document = new Document(a4,24,24,24,72); 

背景色は全ページに適用されます。私はそれをマージンスペースを除くページコンテンツに適用したい。

答えて

1

これを達成するには、PdfPageEventを使用する必要があります。この例ではChange the color of pdf pages alternatively using iText pdf in java

、我々はページ全体をカバー色付きの背景を作成:この質問への答えを見てみましょう

public class Background extends PdfPageEventHelper { 
    @Override 
    public void onEndPage(PdfWriter writer, Document document) { 
     int pagenumber = writer.getPageNumber(); 
     if (pagenumber % 2 == 1 && pagenumber != 1) 
      return; 
     PdfContentByte canvas = writer.getDirectContentUnder(); 
     Rectangle rect = document.getPageSize(); 
     canvas.setColorFill(pagenumber < 3 ? BaseColor.BLUE : BaseColor.LIGHT_GRAY); 
     canvas.rectangle(rect.getLeft(), rect.getBottom(), rect.getWidth(), rect.getHeight()); 
     canvas.fill(); 
    } 
} 

今度は、この例を適応してみましょう:

public class Background extends PdfPageEventHelper { 
    @Override 
    public void onEndPage(PdfWriter writer, Document document) { 
     PdfContentByte canvas = writer.getDirectContentUnder(); 
     Rectangle rect = document.getPageSize(); 
     canvas.setColorFill(BaseColor.BLUE); 
     canvas.rectangle(rect.getLeft() + 36, rect.getBottom() + 36, rect.getWidth() - 72, rect.getHeight() - 72); 
     canvas.fill(); 
    } 
} 

rectangle()メソッドのパラメータを変更することで、あらゆる側面に36ユーザー単位のマージンを導入しました。

もちろん、あなたがPdfWriterにページイベントを宣言する必要があります:私の問題を解決し

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename)); 
Background event = new Background(); 
writer.setPageEvent(event); 
+0

おかげで、 – Harshal

関連する問題