栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#使用iTextSharp添加PDF水印

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#使用iTextSharp添加PDF水印

使用的是iTextSharp添加PDF水印,由于是接口动态生成PDF,所以采用的是全部是内存流的形式,而且水印是平铺是。iTextSharp版本是5.5。

/// 
    /// 添加倾斜水印
    /// 
    /// pdf文件流
    /// 水印字符串
    /// 页面宽度
    /// 页面高度
    public MemoryStream SetWaterMark(MemoryStream pdfStream, string waterMarkName, float width, float height)
    {
      try
      {
 int fontSize = 50;//设置字体大小
 int span = 40;//设置垂直位移
 MemoryStream outStream = new MemoryStream();
 PdfReader pdfReader = new PdfReader(pdfStream);
 PdfStamper pdfStamper = new PdfStamper(pdfReader, outStream);
 pdfStamper.Writer.CloseStream = false;
 int total = pdfReader.NumberOfPages + 1;
 PdfContentByte content;
 baseFont font = baseFont.CreateFont(@"C:WINDOWSFontsSTCAIYUN.TTF", baseFont.IDENTITY_H, baseFont.EMBEDDED);//华文云彩字体
 PdfGState gs = new PdfGState();
 gs.FillOpacity = 0.15f;//透明度
 int waterMarkNameLenth = waterMarkName.Length;
 char c;
 int rise = 0;
 string spanString = " ";//水平位移
 for (int i = 1; i < total; i++)
 {
   rise = waterMarkNameLenth * span;
   content = pdfStamper.GetOverContent(i);//在内容上方加水印
  //content = pdfStamper.GetUnderContent(i);//在内容下方加水印
   content.SetGState(gs);
   content.BeginText();
   content.SetColorFill(baseColor.GREEN);
   content.SetFontAndSize(font, fontSize);
   int heightNumbert = (int)Math.Ceiling((decimal)height / (decimal)rise);//垂直重复的次数,进一发
   int panleWith = (fontSize + span) * waterMarkNameLenth;
   int widthNumber = (int)Math.Ceiling((decimal)width / (decimal)panleWith);//水平重复次数
   
   // 设置水印文字字体倾斜 开始 
   for (int w = 0; w < widthNumber; w++)
   {
     for (int h = 1; h <= heightNumbert; h++)
     {
int yleng = rise * h;
content.SetTextMatrix(w * panleWith, yleng);//x,y设置水印开始的绝对左边,以左下角为x,y轴的起点
for (int k = 0; k < waterMarkNameLenth; k++)
{
  content.SetTextRise(yleng);//指定的y轴值处添加
  c = waterMarkName[k];
  content.ShowText(c + spanString);
  yleng -= span;
}
     }
   }
   content.EndText();
 }
 if (pdfStamper != null)
   pdfStamper.Close();

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

 return outStream;
      }
      catch (Exception ex)
      {
 throw ex;
      }
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/123553.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号