asp.net生成PDF文件参考 .
TextSharp 是用来生成 PDF 的一个组件,在 1998 年夏天的时候,Bruno Lowagie ,iText 的创作者,参与了学校的一个项目,当时使用 HTML 来生成报告,但是,使用 HTML 打印的效果很不理想。最后,他发现,使用 PDF 可以完美解决打印问题,为了能够在各个系统中使用,iText 组件库诞生了。

最初的 iText 主要是支持 Java 語言。之後針對Microsoft .NET C Sharp做了一個版本,也就是我們今天要介紹的 iTextSharp。
目前,iTextSharp 的版本是 5.1.2,下载地址:http://sourceforge.net/projects/itextsharp/files/
其中主要包含了核心组件:itextsharp.dll

但是,直接使用它并不能处理中文,你还要下载两个组件。
在下载页面中,注意图中标注的 extras 文件夹。

点击之后,可以看到如下的下载:

注意把标注的两个压缩包下载下来,这是使用中文的关键。解开两个压缩之后可以看到下面的两个文件。
iTextAsianCmaps.dll
iTextAsian.dll
在创建的项目中,将这三个程序集都添加到项目的引用中。
// 必须先加入资源BaseFont.AddToResourceSearch("iTextAsian.dll");BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");//"UniGB-UCS2-H" "UniGB-UCS2-V"是简体中文,分别表示横向字 和 纵向字//"STSong-Light"是字体名称BaseFont bf = BaseFont.CreateFont("STSong-Light","UniGB-UCS2-H", BaseFont.EMBEDDED);// 也可以使用 TTF 字体BaseFont bf0 = BaseFont.CreateFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);// 创建 PDF 文档iTextSharp.text.Document document =new iTextSharp.text.Document();// 创建写入器实例,PDF 文件将会保存到这里iTextSharp.text.pdf.PdfWriter.GetInstance(document, newSystem.IO.FileStream("Demo.pdf", System.IO.FileMode.Create) );// 打开文档document.Open();iTextSharp.text.Font font =new iTextSharp.text.Font(bf);//写入一个段落, Paragraphdocument.Add(newParagraph("你好, PDF !", font));document.Close();
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.IO;usingiTextSharp;usingiTextSharp.text;usingiTextSharp.text.pdf;publicpartial class_Default : System.Web.UI.Page { staticDataTable datatable = newDataTable("testpdf"); protectedvoid Page_Load(objectsender, EventArgs e) { if(!Page.IsPostBack) { DataRow dr; //建立Column例,可以指明例的类型,这里用的是默认的string datatable.Columns.Add(newDataColumn("编号")); datatable.Columns.Add(newDataColumn("用户名")); for(int i = 1; i < 5; i++) { dr = datatable.NewRow(); dr[0] = System.Convert.ToString(i); dr[1] ="测试" + System.Convert.ToString(i); datatable.Rows.Add(dr); } } } protectedvoid Button1_Click(objectsender, EventArgs e) { try { Document document =new Document(); PdfWriter.GetInstance(document,new FileStream(Server.MapPath("Test.pdf"), FileMode.Create)); document.Open(); BaseFont bfChinese = BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); Font fontChinese =new Font(bfChinese, 12, Font.NORMAL,newColor(0, 0, 0)); //按设置的字体输出文本 document.Add(newParagraph(this.TextBox1.Text.ToString(), fontChinese)); //输出图片到PDF文件 iTextSharp.text.Image jpeg01 = iTextSharp.text.Image.GetInstance(Server.MapPath("Images/gyl.jpg")); document.Add(jpeg01); iTextSharp.text.Image jpeg02 = iTextSharp.text.Image.GetInstance(Server.MapPath("Images/yy.jpg")); document.Add(jpeg02); PdfPTable table =new PdfPTable(datatable.Columns.Count); for(int i = 0; i < datatable.Rows.Count; i++) { for(int j = 0; j < datatable.Columns.Count; j++) { table.AddCell(newPhrase(datatable.Rows[i][j].ToString(), fontChinese)); } } document.Add(table); document.Close(); Response.Write("<script>alert('导出成功!');</script>"); } catch(DocumentException de) { Response.Write(de.ToString()); } }}

浙公网安备 33010602011771号