itextsharp给pdf添加水印

        /// <summary>
        /// 设置水印
        /// 引用组件itextsharp
        /// </summary>
        /// <param name="inputfilepath"></param>
        /// <param name="outputfiledir"></param>
        /// <param name="waterMarkName"></param>
        /// <param name="fontFamily"></param>
        /// <param name="fontSize"></param>
        /// <returns></returns>
        private string setWatermark(string inputfilepath, string outputfiledir, string waterMarkName, string fontFamily, int fontSize)
        {
            
            try
            {
                using (PdfReader pdfReader = new PdfReader(inputfilepath))
                {
                    var filename = Path.GetFileNameWithoutExtension(inputfilepath) + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";
                    var outputfilepathtemp = Path.Combine(outputfiledir, filename);
                    using (PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(outputfilepathtemp, FileMode.Create)))
                    {
                        int total = pdfReader.NumberOfPages;
                        PdfContentByte content;
                        BaseFont font = BaseFont.CreateFont(fontFamily, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
                        PdfGState gs = new PdfGState();
                        for (int i = 1; i <= total; i++)
                        {
                            iTextSharp.text.Rectangle psize = pdfReader.GetPageSize(i);
                            float width = psize.Width;
                            float height = psize.Height;
                            content = pdfStamper.GetOverContent(i);//在内容上方加水印
                                                                   //透明度
                            gs.FillOpacity = 0.3f;
                            content.SetGState(gs);
                            //content.SetGrayFill(0.3f);
                            //开始写入文本
                            content.BeginText();
                            content.SetColorFill(BaseColor.LIGHT_GRAY);
                            content.SetFontAndSize(font, fontSize);
                            content.SetTextMatrix(0, 0);
                            content.ShowTextAligned(Element.ALIGN_CENTER, waterMarkName, width / 2, height / 2 - 45, 45);
                            content.EndText();
                        }
                        return outputfilepathtemp;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
原文地址:https://www.cnblogs.com/njcxwz/p/15637196.html