C#中pdf生成图片文字水印类的实现实例

这篇文章主要介绍了c#实现的pdf生成图片文字水印类,结合完整实例形式分析了c#针对pdf文件的创建、添加文字、水印等相关操作技巧,需要的朋友可以参考下

本文实例讲述了C#实现的pdf生成图片文字水印类。分享给大家供大家参考,具体如下:

public class PDFSetWaterMark{    ///     /// 创建一个显示指定图片的pdf    ///     ///     ///     ///     public static bool CreatePDFByPic(string picPdfPath, string picPath)    {      //新建一个文档      Document doc = new Document();      try      {        //建立一个书写器(Writer)与document对象关联        PdfWriter.GetInstance(doc, new FileStream(picPdfPath, FileMode.Create, FileAccess.ReadWrite));        //打开一个文档        doc.Open();        //向文档中添加内容        Image img = Image.GetInstance(picPath);        //img.SetAbsolutePosition();        doc.Add(img);        return true;      }      catch (Exception ex)      {        return false;        throw ex;      }      finally      {        if (doc != null)        {          doc.Close();        }      }    }    ///     /// 加图片水印    ///     ///     ///     ///     ///     ///     ///     public static 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 / 2 - image.Width + left;        }        //image.SetAbsolutePosition(left, (height - image.Height) - top);        image.SetAbsolutePosition(left, (height / 2 - image.Height) - top);        //每一页加水印,也可以设置某一页加水印        for (int i = 1; i <= numberOfPages; i++)        {          //waterMarkContent = pdfStamper.GetUnderContent(i);//内容下层加水印          waterMarkContent = pdfStamper.GetOverContent(i);//内容上层加水印          waterMarkContent.AddImage(image);        }        //strMsg = "success";        return true;      }      catch (Exception ex)      {        throw ex;      }      finally      {        if (pdfStamper != null)          pdfStamper.Close();        if (pdfReader != null)          pdfReader.Close();      }    }    ///     /// 添加普通偏转角度文字水印    ///     ///     ///     ///     ///     public static void setWatermark(string inputfilepath, string outputfilepath, string waterMarkName)    {      PdfReader pdfReader = null;      PdfStamper pdfStamper = null;      try      {        pdfReader = new PdfReader(inputfilepath);        pdfStamper = new PdfStamper(pdfReader, new FileStream(outputfilepath, FileMode.Create));        int total = pdfReader.NumberOfPages + 1;        iTextSharp.text.Rectangle psize = pdfReader.GetPageSize(1);        float width = psize.Width;        float height = psize.Height;        PdfContentByte content;        BaseFont font = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\SIMFANG.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);        PdfGState gs = new PdfGState();        for (int i = 1; i < total; i++)        {          content = pdfStamper.GetOverContent(i);//在内容上方加水印          //content = pdfStamper.GetUnderContent(i);//在内容下方加水印          //透明度          gs.FillOpacity = 0.3f;          content.SetGState(gs);          //content.SetGrayFill(0.3f);          //开始写入文本          content.BeginText();          content.SetColorFill(BaseColor.LIGHT_GRAY);          content.SetFontAndSize(font, 100);          content.SetTextMatrix(0, 0);          content.ShowTextAligned(Element.ALIGN_CENTER, waterMarkName, width / 2 - 50, height / 2 - 50, 55);          //content.SetColorFill(BaseColor.BLACK);          //content.SetFontAndSize(font, 8);          //content.ShowTextAligned(Element.ALIGN_CENTER, waterMarkName, 0, 0, 0);          content.EndText();        }      }      catch (Exception ex)      {        throw ex;      }      finally      {        if (pdfStamper != null)          pdfStamper.Close();        if (pdfReader != null)          pdfReader.Close();      }    }    ///     /// 添加倾斜水印    ///     ///     ///     ///     ///     ///     ///     public static void setWatermark(string inputfilepath, string outputfilepath, string waterMarkName, string userPassWord, string ownerPassWord, int permission)    {      PdfReader pdfReader = null;      PdfStamper pdfStamper = null;      try      {        pdfReader = new PdfReader(inputfilepath);        pdfStamper = new PdfStamper(pdfReader, new FileStream(outputfilepath, FileMode.Create));        // 设置密码        //pdfStamper.SetEncryption(false,userPassWord, ownerPassWord, permission);        int total = pdfReader.NumberOfPages + 1;        PdfContentByte content;        BaseFont font = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\SIMFANG.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);        PdfGState gs = new PdfGState();        gs.FillOpacity = 0.2f;//透明度        int j = waterMarkName.Length;        char c;        int rise = 0;        for (int i = 1; i = 15)          {            content.SetTextMatrix(200, 120);            for (int k = 0; k < j; k++)            {              content.SetTextRise(rise);              c = waterMarkName[k];              content.ShowText(c + "");              rise -= 20;            }          }          else          {            content.SetTextMatrix(180, 100);            for (int k = 0; k < j; k++)            {              content.SetTextRise(rise);              c = waterMarkName[k];              content.ShowText(c + "");              rise -= 18;            }          }          // 字体设置结束          content.EndText();          // 画一个圆          //content.Ellipse(250, 450, 350, 550);          //content.SetLineWidth(1f);          //content.Stroke();        }      }      catch (Exception ex)      {        throw ex;      }      finally      {        if (pdfStamper != null)          pdfStamper.Close();        if (pdfReader != null)          pdfReader.Close();      }    }}

以上就是C#中pdf生成图片文字水印类的实现实例的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432707.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 08:31:31
下一篇 2025年12月17日 08:31:41

相关推荐

发表回复

登录后才能评论
关注微信