项目需求需要生成一个PDF文档,使用的是VS2010,ASP.NET。
网络上多次搜索没有自己想要的,于是硬着头皮到itextpdf官网看英文文档,按时完成任务,以实用为主,共享一下:
使用HTML文件创建PDF模板:
使用自定义字体的一种方法:
FontFactory.Register(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\Fonts\\RAGE.TTF", "myFont");
Font myFont = FontFactory.GetFont("myFont");
BaseFont bf = myFont.BaseFont;
其中RAGE.TTF是微软操作系统自带的字体,目录在C:\Windows\Fonts,
建议将需要的字体拷贝到项目中使用,否则会出现引用不到的情况。
使用自定义样式:
StyleSheet css = new StyleSheet();
Dictionary<String, String> dict= new Dictionary<string, string>();
dict.Add(HtmlTags.BGCOLOR, "#01366C");
dict.Add(HtmlTags.COLOR, "#000000");
dict.Add(HtmlTags.SIZE,"25");
css.LoadStyle("css1", dict);
这里既可以使用了StyleSheet的LoadStyle方法。
注意itextsharp对HTML元素的支持很弱,像label、div等元素的对齐、背景颜色等属性支持不好,建议使用table标签。