簡體   English   中英

如何為每頁將圖像背景添加到pdf?

[英]How to add image background to pdf for every page?

我正在嘗試將背景設置為pdf並設法將其設置為帶有圖像的圖像,但我的pdf具有較大的表格,因此不會使用Document.NewPage()方法自動添加頁面,因此僅在第一個圖像上設置了背景頁。 這是添加背景的代碼:

    Image backImg = Image.GetInstance(@"D:\websites\DIS\bugs\130208\A4.png");
    backImg.SetAbsolutePosition(0, 0);
    backImg.Alignment = Image.UNDERLYING;

    var doc = new Document(pageSize);
    PdfWriter pdfWriter = PdfWriter.GetInstance(doc, new FileStream(filePath, FileMode.Create));
    doc.Open();

    doc.Add(backImg);
    ...
    creating a big table

而不使用doc.NewPage()方法。 在關閉文檔之前,我是否必須循環拋出每一頁並在最后添加背景圖片,但是如何將其放在背景中而不放在其他元素之上?

每當您想對每個頁面應用某些內容時,都應該使用頁面事件,尤其是PdfPageEvent.onEndPage(),來執行此操作。 您可以通過關鍵字Page events> onEndPage找到有關其用法的示例 -這些示例來自iText in Action 2nd Edition 這些示例主要在您要添加背景圖形的同時添加頁腳和頁眉。

請注意,您不應在此處將內容添加到Document實例,而應直接在PdfWriter,添加內容PdfWriter,並且由於您希望圖像位於頁面內容之下而不是頁面內容之上,因此您將需要使用PdfWriter.getDirectContentUnder()如樣本Stationery而不是其他樣本中的PdfWriter.getDirectContent()

PS: .Net的類似示例可以在此處找到

PPS:示例ImageDirect.java / ImageDirect.cs顯示了如何將圖像添加到某些直接內容中,這可能是此處缺少的信息。

去做

PdfPageEvent.onStartPage()

在這種情況下,編寫代碼以插入圖像(執行操作時)。 它的作用是,一旦創建了新頁面,它將在其中添加圖像,然后在其上添加內容; 產生水印效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM