1 调用直接这样用:2  //PDFHelper.AddImageWatermarkPDF(path, "D://my.pdf", Server.MapPath("/HtmlToPdf/Tools/sy.bmp"), 0, 0);
3             string temp = DateTime.Now.ToLongDateString() + "  " +DateTime.Now.ToLongTimeString();4             Guid guid = newGuid();5             guid =Guid.NewGuid();6
7             string tempGUID =guid.ToString();8             File.Copy("E:\\1.pdf", "E:\\11.pdf", true);9             PDFHelper.AddWordWatermark2PDF("E:\\11.pdf", "E:\\1.pdf", "西安咸阳国际机场南三指廊航站楼工程施工及施工管理总承包" + "_" + temp + "_" + tempGUID + "_7.1");10             //PDFSetWaterMark.setWatermark("D://my.pdf", "D://my2.pdf", "TEST", "", "", 1);
11
12
13 usingiTextSharp.text;14 usingiTextSharp.text.pdf;15 usingSystem;16 usingSystem.Collections.Generic;17 usingSystem.IO;18 usingSystem.Linq;19 usingSystem.Text;20 usingSystem.Threading.Tasks;21
22 namespaceTest测试23 {24     public static classPDFHelper25 {26
27
28         /// <summary>
29         ///加图片水印30         /// </summary>
31         /// <param name="inputfilepath"></param>
32         /// <param name="outputfilepath"></param>
33         /// <param name="ModelPicName"></param>
34         /// <param name="top"></param>
35         /// <param name="left"></param>
36         /// <returns></returns>
37         public static bool AddImageWatermarkPDF(string inputfilepath, string outputfilepath, string ModelPicName, float top, floatleft)38 {39             //throw new NotImplementedException();
40             PdfReader pdfReader = null;41             PdfStamper pdfStamper = null;42             try
43 {44                 pdfReader = newPdfReader(inputfilepath);45
46                 int numberOfPages =pdfReader.NumberOfPages;47
48                 iTextSharp.text.Rectangle psize = pdfReader.GetPageSize(1);49
50                 float width =psize.Width;51
52                 float height =psize.Height;53
54                 pdfStamper = new PdfStamper(pdfReader, newFileStream(outputfilepath, FileMode.Create));55
56 PdfContentByte waterMarkContent;57
58                 iTextSharp.text.Image image =iTextSharp.text.Image.GetInstance(ModelPicName);59
60                 image.GrayFill = 20;//透明度,灰色填充61                                     //image.Rotation//旋转62                                     //image.RotationDegrees//旋转角度63                                     //水印的位置
64                 if (left < 0)65 {66                     left = width / 2 - image.Width +left;67 }68
69                 //image.SetAbsolutePosition(left, (height - image.Height) - top);
70                 image.SetAbsolutePosition(left, (height / 2 - image.Height) -top);71
72
73                 //每一页加水印,也可以设置某一页加水印
74                 for (int i = 1; i <= numberOfPages; i++)75 {76                     //waterMarkContent = pdfStamper.GetUnderContent(i);//内容下层加水印
77                     waterMarkContent = pdfStamper.GetOverContent(i);//内容上层加水印
78
79 waterMarkContent.AddImage(image);80 }81                 //strMsg = "success";
82                 return true;83 }84             catch(Exception ex)85 {86                 throwex;87
88 }89             finally
90 {91
92                 if (pdfStamper != null)93 pdfStamper.Close();94
95                 if (pdfReader != null)96 pdfReader.Close();97 }98 }99         /// <summary>
100         ///添加普通偏转角度文字水印101         /// </summary>
102         /// <param name="inputfilepath"></param>
103         /// <param name="outputfilepath"></param>
104         /// <param name="waterMarkName"></param>
105         /// <param name="permission"></param>
106         public static void AddWordWatermark2PDF(string inputfilepath, string outputfilepath, stringwaterMarkName)107 {108             PdfReader pdfReader = null;109             PdfStamper pdfStamper = null;110             try
111 {112                 pdfReader = newPdfReader(inputfilepath);113                 pdfStamper = new PdfStamper(pdfReader, newFileStream(outputfilepath, FileMode.Create));114                 int total = pdfReader.NumberOfPages + 1;115                 iTextSharp.text.Rectangle psize = pdfReader.GetPageSize(1);116                 float width =psize.Width;117                 float height =psize.Height;118 PdfContentByte content;119                 BaseFont font = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\SIMFANG.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);120                 PdfGState gs = newPdfGState();121                 for (int i = 1; i < total; i++)122 {123                     content = pdfStamper.GetOverContent(i);//在内容上方加水印124                     //content = pdfStamper.GetUnderContent(i);//在内容下方加水印125                     //透明度
126                     gs.FillOpacity = 0.5f;127 content.SetGState(gs);128                     content.SetGrayFill(0.5f);129                     //开始写入文本
130 content.BeginText();131                     //content.SetColorFill(BaseColor.LIGHT_GRAY);132                     //content.SetFontAndSize(font, 100);133                     //content.SetTextMatrix(0, 0);134                     //content.ShowTextAligned(Element.ALIGN_CENTER, waterMarkName, width / 2 - 50, height / 2 - 50, 55);
135 content.SetColorFill(BaseColor.GRAY);136                     content.SetFontAndSize(font, 16);137                     content.ShowTextAligned(Element.ALIGN_CENTER, waterMarkName, width / 2 - 50, height / 2 - 50, 55);138 content.EndText();139 }140 }141             catch(Exception ex)142 {143                 throwex;144 }145             finally
146 {147
148                 if (pdfStamper != null)149 pdfStamper.Close();150
151                 if (pdfReader != null)152 pdfReader.Close();153 }154 }155
156
157
158         /// <summary>
159         ///添加倾斜水印160         /// </summary>
161         /// <param name="inputfilepath"></param>
162         /// <param name="outputfilepath"></param>
163         /// <param name="waterMarkName"></param>
164         /// <param name="userPassWord"></param>
165         /// <param name="ownerPassWord"></param>
166         /// <param name="permission"></param>
167         public static void setWatermark(string inputfilepath, string outputfilepath, string waterMarkName, string userPassWord, string ownerPassWord, intpermission)168 {169             PdfReader pdfReader = null;170             PdfStamper pdfStamper = null;171             try
172 {173                 pdfReader = newPdfReader(inputfilepath);174                 pdfStamper = new PdfStamper(pdfReader, newFileStream(outputfilepath, FileMode.Create));175                 //设置密码176                 //pdfStamper.SetEncryption(false,userPassWord, ownerPassWord, permission);
177
178                 int total = pdfReader.NumberOfPages + 1;179 PdfContentByte content;180                 BaseFont font = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\SIMFANG.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);181                 PdfGState gs = newPdfGState();182                 gs.FillOpacity = 0.2f;//透明度
183
184                 int j =waterMarkName.Length;185                 charc;186                 int rise = 0;187                 for (int i = 1; i < total; i++)188 {189                     rise = 500;190                     content = pdfStamper.GetOverContent(i);//在内容上方加水印191                                                            //content = pdfStamper.GetUnderContent(i);//在内容下方加水印
192
193 content.BeginText();194 content.SetColorFill(BaseColor.DARK_GRAY);195                     content.SetFontAndSize(font, 50);196                     //设置水印文字字体倾斜 开始
197                     if (j >= 15)198 {199                         content.SetTextMatrix(200, 120);200                         for (int k = 0; k < j; k++)201 {202 content.SetTextRise(rise);203                             c =waterMarkName[k];204                             content.ShowText(c + "");205                             rise -= 20;206 }207 }208                     else
209 {210                         content.SetTextMatrix(180, 100);211                         for (int k = 0; k < j; k++)212 {213 content.SetTextRise(rise);214                             c =waterMarkName[k];215                             content.ShowText(c + "");216                             rise -= 18;217 }218 }219                     //字体设置结束
220 content.EndText();221                     //画一个圆222                     //content.Ellipse(250, 450, 350, 550);223                     //content.SetLineWidth(1f);224                     //content.Stroke();
225 }226
227 }228             catch(Exception ex)229 {230                 throwex;231 }232             finally
233 {234
235                 if (pdfStamper != null)236 pdfStamper.Close();237
238                 if (pdfReader != null)239 pdfReader.Close();240 }241 }242
243
244
245
246 }247
248
249
250 }

转载于:https://www.cnblogs.com/haofaner/p/8779840.html

C#向pdf 添加水印相关推荐

  1. java word转pdf 后通过 PdfReader 和 PdfStamper对pdf添加水印 通过poi等组件实现

    所需jar包地址 <!-- java 读取word文件里面的加颜色的字体 转pdf 使用 --><dependency><groupId> e-iceblue &l ...

  2. java给图片、word、ppt、excel、pdf添加水印

    java给图片.word.ppt.excel.pdf添加水印 使用poi.itextpdf.imageio等技术 只支持高版本的office,即支持docx.pptx.xlsx 给word添加水印遇到 ...

  3. 怎样给pdf添加水印,给pdf添加水印的两个方法

    怎么样给pdf添加水印,给pdf添加水印的两个方法.大家在网上下载文件.文档时,发现越来越多的文档文件都会被作者添加上水印.作者们这样做得目的就是对自己作品的一种保护行为,使自己的作为不会遭到他人私自 ...

  4. 基于itextpdf java pdf添加水印后,部分文档无法显示水印的问题

    maven项目开发遇到的问题. 这个问题有点坑,测试时doc(x).xls(x)添加水印后正常显示,而ppt(x)打开后水印看不到,但是可以被选中.不了解pdf文档,搜了半天,最后发现pdf文档是分层 ...

  5. 如何给pdf添加水印?

    如何给pdf添加水印?很多小伙伴在完成一份pdf文件之后,会在第一时间内给pdf文件加上水印,给pdf文件添加水印的好处非常多,例如明确文件的版权出处.减少文件被恶意盗用的可能.而且还有一定的品牌宣传 ...

  6. mac pdf去水印_如何在Mac上为PDF添加水印

    在Mac上为PDF添加水印能够防止别人伪造文档,并且大大提高安全性.因此,当您想在文档上标明所有权或者不希望您的文档被复制时,添加水印就能派上用场.本文将告诉您如何在Mac设备(包括Mojave)上批 ...

  7. java为PDF添加水印,图片水印和文字水印

    java为PDF添加水印,文字水印和图片水印 一个需求,下载pdf.word.excel文件时要带有水印,要求铺满.先分开,先介绍为PDF文件添加文字水印和图片水印. 所需jar包:itext-2.0 ...

  8. PDF编辑工具如何给PDF添加水印 添加水印的过程

    水印这件东西,在有些人的心里认为特别的高大上,特别难添加,添加一个水印估计要去专门的设计公司,不知道要花多少钱!其实这只是小部分不了解水印的人,所产生的想法.真正了解水印是什么的人,都知道添加水印其实 ...

  9. PDF编辑软件如何跟PDF添加水印相结合

    在目前的生活中,大家是不是经常能看见各种各样的水印呢.在图片上会有水印,在PDF文件上会有水印,就连纸币上同样都有水印.当然了这些水印的种类都不相同,其中部分水印的作用也不相同了.图片与文件中的水印是 ...

  10. 文件下载:从服务器上下载,自动给下载的PDF添加水印(一)

    javaweb 项目,前端页面点击下载指定文件,后端执行过程. 给文件添加水印方法的代码,放在下一篇:<给指定的PDF添加水印(二)> 从服务器文件下载,自动添加水印 一.从服务器文件下载 ...

最新文章

  1. python 时间格式 工作日_python使用time、datetime返回工作日列表实例代码
  2. 管理员账户遇到“操作需要管理员权限”解决方法
  3. 第01课:深度学习概述
  4. mysql 取数据 展示_php mysql_fetch_row逐行获取结果集数据并显示在table表格中
  5. 在PC上用模拟器搭建Windows Mobile仿真环境:Microsoft Device Emulator使用
  6. java 嵌套类 map_java – 将groupingBy用于嵌套Map,但收集到不同类型的对象
  7. 手机也能当电脑用?--谈谈未来智能手机操作系统的走向
  8. 设计模式14_组合结构
  9. No boot device avalible,Press any key to reboot the system
  10. 【HTML练习】登录注册界面模板1
  11. Stata+PSM:倾向得分匹配分析简介
  12. 猜词游戏之JavaScript实现
  13. python anaconda下载包_anaconda python 2.7
  14. 通达信 c java,通达信的c
  15. 超全面试汇总——Hive 超详细!!!带答案!!!持续更新中~
  16. 剑指offer-二叉树(python)
  17. 【新华三网络工程师】H3C如何配置三层组网技术
  18. 雾毒占用系统资源 代理***窃取帐号
  19. win10 cvs服务器客户端操作(CVS Suite Studio,TortoiseCVS及WinCVS)
  20. NVivo最新v1.0重磅来袭!不一样的用户界面,不一样的体验!

热门文章

  1. 2015年省赛第六届蓝桥杯B组C/C++第二题解 星系炸弹
  2. Faster R-CNN的参数设计细节
  3. Geolocation模块管理设备位置信息,用于获取地理位置信息,如经度、纬度等。通过plus.geolocation可获取设备位置管理对象
  4. 达沃斯的数字经济时间 马云:明天世界更普惠机会更均等
  5. 复现Nature图表 ggplot做面积图(折线面积图)
  6. Adobe Animate CC 入门讲解
  7. 计算机教育部第四轮学科评估,第四轮学科评估结果发布,学科获评A+的都在这里...
  8. iPhone自动接听和拒接来电设置方法「苹果教程」
  9. CentOS下yum安装MySQL8.0
  10. 微信小程序开发者工具上请求能成功,手机预览请求不到数据