官场斗完整版文字版:C# 生成PDF详解(支持中文、水印、页眉、页脚、表格等) | 真有意思

来源:百度文库 编辑:中财网 时间:2024/05/02 05:05:34

第三篇: PDF相关属性的设置,权限的设置,以及加密


第一篇 准备工作

 

第二篇 Hello PDF

今天,我们开始系列的第三篇,对PDF文档的属性,权限已经加密等的设置

作文一种文档形式,PDF和WORD等的,是使用非常普遍的。在我们发布文档的时候,我们通常需要附加一些作者或版权之类的信息,甚至是加密,以保护自己的劳动成果或秘密等。

下面我就对比一下2个PDF文件的差异:(图一是我们第二篇的时候,生成的PDF文件;图二是我们此文生成的PDF文件)

通过上面2符图的对比,就可以看出,下面的文档,属性里面多了几项说明内容,下面是实现的代码:

//定义一个Document,并设置页面大小为A4,竖向iTextSharp.text.Document doc = new Document(PageSize.A4);try{//写实例PdfWriter.GetInstance(doc, new FileStream("chap02.pdf", FileMode.Create));#region 设置PDF的头信息,一些属性设置,在Document.Open 之前完成doc.AddAuthor("DeltaCat 三角猫");doc.AddCreationDate();doc.AddCreator("DeltaCat");doc.AddSubject("Dot Net 使用 itextsharp 类库创建PDF文件的例子");doc.AddTitle("此PDF由三角猫创建,嘿嘿");doc.AddKeywords("ASP.NET,PDF,iTextSharp,DeltaCat,三角猫");//自定义头doc.AddHeader("Expires", "0");#endregion//打开documentdoc.Open();//载入字体BaseFont.AddToResourceSearch("iTextAsian.dll");BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");//"UniGB-UCS2-H" "UniGB-UCS2-V"是简体中文,分别表示横向字 和 纵向字//"STSong-Light"是字体名称BaseFont baseFT = BaseFont.CreateFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);iTextSharp.text.Font font = new iTextSharp.text.Font(baseFT);//写入一个段落, Paragraphdoc.Add(new Paragraph("你好, PDF !", font));//关闭documentdoc.Close();//打开PDF,看效果Process.Start("chap02.pdf");}catch (DocumentException de){Console.WriteLine(de.Message);Console.ReadKey();}catch (IOException io){Console.WriteLine(io.Message);Console.ReadKey();}

下面,我们来说明第二个内容,那就是权限的设置和加密

我们都知道,对于PDF文档,我们可以设置密码,可以禁止打印,禁止复制等等……

下面,我们就用 iTextSharp 来实现这些功能,先看效果图:

从图上,我们可以看到, 打印按钮是灰色的,并且标题栏上显示有 (已加密)的字样。

PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("chap03.pdf", FileMode.Create));//设置限制权限writer.SetEncryption(true, null, null, 0);

上面的代码中,最后一个参数0,表示的是权限,0表示全部限制,大家可以根据情况,自己改变这个值,来设定不同的权限。

下面来说明一下,如何设置访问密码:

//设置限制权限writer.SetEncryption(true, "password", null, 0);