第三篇: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("https://www.sodocs.net/doc/5313484948.html,,PDF,iTextSharp,DeltaCat,三角猫");
//自定义头
doc.AddHeader("Expires", "0");
#endregion
//打开document
doc.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);
//写入一个段落, Paragraph
doc.Add(new Paragraph("你好, PDF !", font));
//关闭document
doc.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);