PDF打水印加密

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Data;
  4 using System.Diagnostics;
  5 using System.IO;
  6 using System.Linq;
  7 using System.Web;
  8 using iTextSharp.text;
  9 using iTextSharp.text.pdf;
 10 using iTextSharp.text.html;
 11 using iTextSharp.text.xml;
 12 using System.Configuration;
 13
 14 namespace WorkFlow
 15 {
 16     public class ReportHelper
 17     {
 18         public static string  ConvertToPDF(string content)
 19         {
 20             string s = string.Empty;
 21             string sPwd = string.Empty;
 22             StringReader sr = new StringReader(content);
 23             //定义一个Document,并设置页面大小为A4,竖向
 24             Document document = new Document(PageSize.A4);
 25             string sMapPath = HttpContext.Current.Server.MapPath(GetWebMailKeyValue()) + @"\";
 26             string sFileName = "Report" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";
 27
 28             try
 29             {
 30                 DirectoryInfo info = new DirectoryInfo(sMapPath);
 31                 if (!info.Exists)
 32                 {
 33                     info.Create();
 34                 }
 35                 PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(sMapPath + sFileName, FileMode.Create));
 36                 #region 载入亚洲字体资源,无此操作的话,不能显示包括中文、日文、韩文等内容
 37                 BaseFont.AddToResourceSearch("iTextAsian.dll");
 38                 BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");
 39                 BaseFont bf = BaseFont.CreateFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
 40                 #endregion
 41
 42
 43                 //生成水印
 44                 writer.PageEvent = new PdfEventHanler("@JTSJMZT", bf);
 45
 46                 //处理密码
 47                 if (string.IsNullOrEmpty(sPwd))
 48                 {
 49                     Random r = new Random();
 50                     sPwd = r.Next(0, 99999999).ToString();
 51                 }
 52                 //将密码存入数据库
 53                 //sPwd
 54
 55                 //加密
 56                 writer.SetEncryption(PdfWriter.STRENGTH128BITS, sPwd, null, PdfWriter.AllowPrinting);
 57
 58
 59                 //打开document
 60                 document.Open();
 61
 62                 //写入一个段落, Paragraph
 63                 //List<IElement> htmlarraylist = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(sr, null).ToArray().ToList<IElement>();
 64
 65                 //for (int k = 0; k < htmlarraylist.Count; k++)
 66                 //    document.Add(htmlarraylist[k]);
 67
 68                 //Paragraph mypara = new Paragraph();
 69                 //document.Add(mypara);
 70
 71                 document.Add(new Paragraph(content, new Font(bf, 12)));
 72
 73                 //关闭document
 74                 document.Close();
 75
 76                 s = sFileName;
 77                 //打开PDF,看效果
 78                 //Process.Start(s);
 79
 80                 //Blob Storage
 81                 //var location = AppDomain.CurrentDomain.BaseDirectory;
 82                 //uploadPath = location + "/";
 83                 //doc.Save(uploadPath + sFileName);
 84                 //BlobClient.AddBlob(DANCode1Config.EmailFileContainer, "MailExportAttachment1/" + sFileName, uploadPath, sFileName);
 85
 86                 //uploadPath = GetWebMailURL() + "MailExportAttachment1/" + sFileName;
 87
 88                 //s = "{\"message\":true,\"value\":\"" + s + "\"}";
 89             }
 90             catch (Exception ex)
 91             {
 92                 s= ex.Message;
 93             }
 94             return s;
 95         }
 96
 97         public static string GetWebMailURL()
 98         {
 99             string s = ConfigurationManager.AppSettings["MailBlobStorage"].ToString();
100             return s;
101         }
102
103         public static string GetWebMailKeyValue()
104         {
105             string s = ConfigurationManager.AppSettings["PDFExport"].ToString();
106             return s;
107         }
108     }
109
110     internal class PdfEventHanler : PdfPageEventHelper
111     {
112         string m_WatermaskText;
113         BaseFont m_WatermaskTextFont;
114
115         /// <summary>
116         ///
117         /// </summary>
118         /// <param name="watermaskText">水印文字的内容</param>
119         /// <param name="watermaskTextFont">水印文字的字体</param>
120         public PdfEventHanler(string watermaskText,
121      BaseFont watermaskTextFont)
122         {
123             m_WatermaskText = watermaskText;
124             m_WatermaskTextFont = watermaskTextFont;
125         }
126
127         /// <summary>
128         /// 在Page End事件中,添加页面水印,此事件在每页均会发生
129         /// </summary>
130         /// <param name="writer"></param>
131         /// <param name="document"></param>
132         public override void OnEndPage(PdfWriter writer,
133     Document document)
134         {
135             PdfGState gstate = new PdfGState();
136             gstate.FillOpacity = 0.2f; //设置灰度和透明度
137             gstate.StrokeOpacity = 0.2f;
138
139             //水印内容,必须放置在底层
140             PdfContentByte wm = writer.DirectContentUnder;
141             wm.SaveState();
142             wm.SetGState(gstate);
143
144             #region 给页面添加文字水印
145             wm.SetFontAndSize(m_WatermaskTextFont, 50);
146             wm.BeginText();
147             wm.ShowTextAligned(Element.ALIGN_CENTER, m_WatermaskText,
148     document.PageSize.Width / 2, document.PageSize.Height / 2, -35f);
149             wm.EndText();
150             #endregion
151
152             wm.RestoreState();
153
154             base.OnEndPage(writer, document);
155         }
156     }
157 }

时间: 2025-01-17 09:56:08

PDF打水印加密的相关文章

如何有效的对PDF文件进行加密保护

PDF是办公中保存资料数据文件不可或缺的一类电子文件工具软件,它的优势在于清晰的位图显示形式和良好的阅读体验,所以很多合同报告.电子书.技术文档.设计图纸等都越来越倾向这种存储方式.和普通的电子文档一样,如Word.Excel,PDF文件也存在信息安全泄漏风险,因此加密保护也是必不可少的.下面就来分享下如何对PDF进行权限设置和PDF文件加密操作. PDF格式的官方编辑器Adobe acrobat 软件为我们提供的口令加密包含"打开文档的口令"和"限制文档编辑打印口令&quo

PDF编辑器轻松四步去除PDF文中水印

在网上下载的任何PDF格式的文件都有可能已经添加上了该网站的一些水印,有了这些水印的文件我们在使用的时候就相当于是盗用他人资源,很有可能会承担法律风险.那么有什么方法能够去除这些文件中的文字水印吗?相信有很多朋友是不知道如何做的,那么接下来小编就为大家详细的介绍一下PDF文字水印的去除方法!不过在此之前我们需要接触到一款软件--PDF编辑器! 小编向你们推荐一款好用的PDF编辑器--捷速PDF编辑器.它可以对PDF文件进行图片替换.文字修改.绘画标注.页面旋转.输出与打印等,是PDF编辑器中速度

《OpenCV3编程入门》毛星云高清PDF无水印+源代码学习

资源链接:https://pan.baidu.com/s/159TPjEDXOil32WMkL6QLoQ高清完整带书签PDF无水印版和源代码.如下: 原文地址:http://blog.51cto.com/13371447/2322861

PDF的水印怎么去掉

很多朋友私下都有问过PDF去除水印的方法,现在在网上下载一些PDF电子书,几乎页面内都会有水印的,而且有的水印还带有超链接,稍微不注意就会点开进入别的页面内,不仅影响了阅读效果还带给读者负面影响,那如何将PDF水印去除呢. 操作工具:[迅捷PDF转换器] 步骤一:打开电脑进入浏览器内搜索“迅捷pdf在线转换器”(需提前准备好PDF文件) 步骤二:进入在线转换的页面后,可以看到很多关于PDF文件的转换,这个时候不要看花了眼,找到文档处理,在下拉框里下回弹出“PDF去除水印”. 步骤三:进入去除水印

pdf增加水印

/// <summary> /// 为PDF添加水印或背景图片 /// </summary> /// <param name="strSourceFilePath">源文件路径</param> /// <param name="strTargetFilePath">目标文件路径</param> /// <param name="strWaterMarkPicPath"&

pdf文件下载水印添加的中文与空格问题解决

public static boolean waterMark(String inputFile, String outputFile, String waterMarkName)throws IOException { try { //inputFile = new String(inputFile.getBytes("UTF-8"),"UTF-8"); BaseFont base = BaseFont.createFont("STSong-Light&

java pdf 加水印

<dependency> <groupId>com.itextpdf.tool</groupId> <artifactId>xmlworker</artifactId> <version>5.5.10</version></dependency><dependency>(http://www.amjmh.com/v/) <groupId>com.itextpdf</groupId&

使用lowagie给pdf添加文字和图片水印

package com.xian.util; import java.awt.Color;import java.io.FileOutputStream;import java.io.IOException; import com.lowagie.text.DocumentException;import com.lowagie.text.Element;import com.lowagie.text.Image;import com.lowagie.text.pdf.BaseFont;impo

PDF加密方法

别等盗版满天飞,才想起加密的重要性 加密效果: 文件内容防复制,防修改,不可打印,不可另存为: 可控制查看时间.查看次数: 控制浏览权限,无授权许可无法打开文件: 加密方式: 首先使用Virbox Protector对指定PDF阅读工具加密后,其次使用DS Protector对PDF文件进行加密.通过Virbox许可来控制是否有权限查看PDF文件,完美实现对PDF文件的掌控.可批量加密PDF 文件,十分钟即可完成整个加密流程. 许可控制: Virbox 许可的作用可以比喻成一把钥匙,有了许可才能