iTextSharp给PDF添加水印

时间:2024-01-30 08:19:53

   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