在现有PDF文件上添加水印

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using  iTextSharp.text.html.simpleparser;
using  iTextSharp.text.pdf;
using  iTextSharp.text;
using System.IO;
using System.Web.UI.HtmlControls;
using System.Drawing;


//itextsharp.dll version:5.1.10

protected  void Button1_Click( object sender, EventArgs e)
     {
         string source = @" D:\My.Sample\C#NET\Exoport2PDF\Web2\Chap1011.pdf "; //模板路径
         string output =  @" D:\My.Sample\C#NET\Exoport2PDF\Web2\Chap1012.pdf "; //导出水印背景后的PDF
         string watermark =  @" D:\My.Sample\C#NET\Exoport2PDF\Web2\gp0.jpg ";   // 水印图片

         bool isSurrcess = PDFWatermark(source, output, watermark,  1010);
        
     }


     public   bool PDFWatermark( string inputfilepath,  string outputfilepath,  string ModelPicName,  float top,  float left)

    {
         // 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;

            iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(ModelPicName);

            image.GrayFill =  20; // 透明度,灰色填充
            
// image.Rotation // 旋转
            
// image.RotationDegrees // 旋转角度
            
// 水印的位置 
             if (left <  0)
            {
                left = width - image.Width + left;
            }

            image.SetAbsolutePosition(left, (height - image.Height) - top);


             // 每一页加水印,也可以设置某一页加水印 
             for ( int i =  1; i <= numberOfPages; i++)
            {
                waterMarkContent = pdfStamper.GetUnderContent(i);

                waterMarkContent.AddImage(image);
            }
             // strMsg = "success";
             return  true;
        }
         catch (Exception ex)
        {
             ex.Message.Trim();
             return  false;
        }
         finally
        {

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

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

转载于:https://www.cnblogs.com/DODONG/archive/2012/05/09/2491344.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值