iTextSharp作為.net平台下操作PDF的組件功能強大,但是前端時間遇到了一個問題,動態生成PDF時(生成的PDF里面有多個表格,表格數據來自數據庫),無法給每頁都添加水印圖片,可能是本人對iTextSharp組件不夠了解,沒有找到生成動態PDF時就給每頁添加水印。最后只好先用iTextSharp生成PDF然后在用iTextSharp給生成好的PDF添加水印。如果園子里的朋友誰做過生成PDF時就給每頁添加水印,可指點指點小弟。
下面把iTextSharp給PDF添加水印的代碼貼出來供大家參考。
#region 每頁加公章 string AreaCode = UnitInfoQueryBll.Instance.getAreaCode(currentUser.UINTID); if (!string.IsNullOrEmpty(AreaCode)) { int pages = document.PageNumber; PdfReader reader = new PdfReader(HttpContextHelper.AppRootPath + pdfpath + pdfName + ".pdf"); int n = reader.NumberOfPages; PdfStamper stamper = new PdfStamper(reader, new FileStream(HttpContextHelper.AppRootPath + pdfpath + pdfName + "a.pdf", FileMode.Create)); int j = 0; PdfContentByte contentByte; iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(imgePath + AreaCode + ".png"); img.ScalePercent(75f); img.SetAbsolutePosition(300, 550); while (j < n) { j++; contentByte= stamper.GetOverContent(j); contentByte.AddImage(img); } stamper.Close(); reader.Close(); } #endregion
