iTextSharp水印平铺

 

/// <summary>
        /// 加平铺图片水印
        /// </summary>
        /// <param name="inputfilepath"></param>
        /// <param name="outputfilepath"></param>
        /// <param name="ModelPicName"></param>
        /// <returns></returns>
        public static bool PDFWatermark(string inputfilepath, string outputfilepath, string ModelPicName)
        {
            //throw new NotImplementedException();
            PdfReader pdfReader = null;
            PdfStamper pdfStamper = null;
            try
            {
                pdfReader = new PdfReader(inputfilepath);

                int numberOfPages = pdfReader.NumberOfPages;
                iTextSharp.text.Rectangle psize = pdfReader.GetPageSize(1);

                float width = psize.Width;
                float height = psize.Height;
                pdfStamper = new PdfStamper(pdfReader, new FileStream(outputfilepath, FileMode.Create));

                PdfContentByte waterMarkContent;
                PdfGState gs = new PdfGState();
                gs.FillOpacity = 0.2f;

                iTextSharp.text.Image imgTemp = iTextSharp.text.Image.GetInstance(ModelPicName);
                float imgWidth = (float) Math.Cos(Math.PI / 4) * imgTemp.Width + 100;
                float imgHeight = (float) Math.Sin(Math.PI / 4) * imgTemp.Width + 100;


                //每一页加水印,也可以设置某一页加水印
                for (int i = 1; i <= numberOfPages; i++)
                {
                    //waterMarkContent = pdfStamper.GetUnderContent(i);//内容下层加水印
                    waterMarkContent = pdfStamper.GetOverContent(i);//内容上层加水印
                    waterMarkContent.SetGState(gs);

                    for (float left = 0; left < width; left += imgWidth)
                    {
                        for (float top = 0; top < height; top += imgHeight)
                        {
                            iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(ModelPicName);
                            image.GrayFill = 100;//透明度,灰色填充
                            //image.Rotation = 45;//旋转
                            image.RotationDegrees = 45;//旋转角度
                            image.SetAbsolutePosition(left, height - image.Height - top);
                            Console.WriteLine(left +":"+ (height - image.Height - top));
                            waterMarkContent.AddImage(image);
                        }
                    }
                }
                //strMsg = "success";
                return true;
            }
            catch (Exception ex)
            {
                throw ex;

            }
            finally
            {

                if (pdfStamper != null)
                    pdfStamper.Close();

                if (pdfReader != null)
                    pdfReader.Close();
            }
        }

 

转载于:https://www.cnblogs.com/guxingzhe/p/11314325.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值