搜档网
当前位置:搜档网 › C# 生成PDF详解(支持中文、水印、页眉、页脚、表格等)

C# 生成PDF详解(支持中文、水印、页眉、页脚、表格等)

第三篇: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);

相关主题