2011-05-18 148 views

回答

4

這與添加頁眉或頁腳基本相同。

您需要創建一個實現PdfPageEvent的類,並在OnPageEnd中抓取頁面的PdfContentByte,然後在那裏繪製圖像。使用絕對位置。

注意:您可能希望從PdfPageEventHelper派生,它具有所有頁面事件的空白實現,因此您只需編寫您實際關心的方法。

注意:除非您的圖像大部分是透明的,否則將其繪製在頁面頂部將掩蓋許多事情。 IIRC(「如果我正確回憶」),iText添加的PNG和GIF文件將自動被正確屏蔽,允許其中的內容顯示。

如果你想在一切之下添加一個不透明的圖像,你應該改寫OnStartPage()

這是Java,但轉換它主要是大寫方法名稱和交換get/set調用屬性訪問的問題。

Image watermarkImage = new Image(imgPath); 
watermarkImage.setAbsolutePosition(x, y); 

writer.setPageEvent(new MyPageEvent(watermarkImage)); 


public MyPageEvent extends PdfPageEventHelper { 
    private Image waterMark; 
    public MyPageEvent(Image img) { 
    waterMark = img; 
    } 
    public void OnEndPage/*OnStartPage*/(PdfWriter writer, Document doc) { 
    PdfContentByte content = writer.getContent(); 
    content.addImage(waterMark); 
    } 
} 
+0

工作完全 – Deeptechtons 2011-05-19 04:42:16

4

對於C#,使用此代碼...

//new Document 

Document DOC = new Document(); 


// open Document 

DOC.Open(); 


//create New FileStream with image "WM.JPG" 

FileStream fs1 = new FileStream("WM.JPG", FileMode.Open); 


iTextSharp.text.Image JPG = iTextSharp.text.Image.GetInstance(System.Drawing.Image.FromStream(fs1), ImageFormat.Jpeg); 


//Scale image 

JPG.ScalePercent(35f); 


//Set position 

JPG.SetAbsolutePosition(130f,240f); 

//Close Stream 

fs1.Close(); 


DOC.Add(JPG); 
+0

+1不得不回答這個問題得到的回答是長回來的一個問題 – Deeptechtons 2012-02-04 10:19:54