一步一步 IText.Sharp 中文支持
在初始使用IText.Sharp时,这个组件生成PDF文档,比较简单,默认情况下,它是不支持中文显示的,需要加入第三方的支持才能使用。
一、扩展支持文件下载:
http://sourceforge.net/projects/itextsharp/files/extras/
下载上图中框中的,就可以:
二、使用方法如下:
1: BaseFont.AddToResourceSearch("iTextAsian.dll");
2: BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");
注意:文件路径要使用全路径
三、注册中文字体
字体注册是非常方便的,使用如下:
可以使用字体文件,也可以使用字体目录进行批量注册。
注册字体文件:
1: FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
2: @"\..\Fonts\STSONG.ttf");
3: FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
4: @"\..\Fonts\simhei.ttf");
5: FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
6: @"\..\Fonts\simsun.ttc");
注册字体目录方法签名如下:
1: public static int RegisterDirectory(String dir)
2: public static int RegisterDirectory(String dir, bool scanSubdirectories)
演示实例:
1: static void Main(string[] args)
2: {
3: BaseFont.AddToResourceSearch("iTextAsian.dll");
4: BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");
5: FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
6: @"\..\Fonts\STSONG.ttf");
7: FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
8: @"\..\Fonts\simhei.ttf");
9: FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
10: @"\..\Fonts\simsun.ttc");
11:
12: MemoryStream ms = new MemoryStream();
13: Document document = new Document();
14: PdfWriter writer = PdfWriter.GetInstance(
15: document, new FileStream(string.Format("{0}helloworld.pdf",
16: AppDomain.CurrentDomain.BaseDirectory), FileMode.OpenOrCreate));
17: document.Open();
18:
19: document.Add(new Paragraph("中显示实例",FontFactory.GetFont("华文宋体", BaseFont.IDENTITY_H, 16)));
20: writer.CloseStream = false;
21: document.Close();
22:
23: }
执行效果: