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