zoukankan      html  css  js  c++  java
  • 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;
                }
            }
  • 相关阅读:
    Merge Sort
    important在css中的作用
    Quick Sort
    Shell's Sort
    2019年7月22日~28日 第四周学习记录
    eclipse安装心得和环境变量配置的体会
    2019年7月15日~7月21日 第三周学习记录
    2019年7月1日~7月7日 第一周学习记录
    程序为本,代码方式仅是语言 ———《大道至简软件工程实践者的思想》
    2019年7月8日~7月14日 第二周学习记录
  • 原文地址:https://www.cnblogs.com/njcxwz/p/15637196.html
Copyright © 2011-2022 走看看