1. 程式人生 > >使用iTextSharp導出PDF

使用iTextSharp導出PDF

str nes isp nco current win pub var nor

 /// <summary>
        /// 導出至PDF
        /// </summary>
        /// <param name="dt">數據源</param>
        /// <param name="fileName">文件名</param>
        /// <param name="dicTableHeader">字段表頭名對照</param>
        public static void Export(DataTable dt, string fileName, Dictionary<string
, string> dicTableHeader) { Document document = new Document(); using (MemoryStream pdfStream = new MemoryStream()) { PdfWriter pdfWriter = PdfWriter.GetInstance(document, pdfStream); 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, new BaseColor(0, 0, 0)); Font fontHeader = new Font(bfChinese, 12, Font.BOLD, new BaseColor(0, 0, 0));
int columCount = dicTableHeader.Count; PdfPTable table = new PdfPTable(columCount); foreach (var item in dicTableHeader) { PdfPCell cell = new PdfPCell(new Phrase(item.Value, fontHeader)); cell.HorizontalAlignment = Element.ALIGN_CENTER; table.AddCell(cell); } for (int i = 0; i < dt.Rows.Count; i++) { foreach (var item in dicTableHeader) { table.AddCell(new Phrase(dt.Rows[i][item.Key].ToString(), fontChinese)); } } document.Add(table); document.Close(); pdfWriter.Close(); HttpContext curContext = HttpContext.Current; curContext.Response.Clear(); curContext.Response.ClearContent(); curContext.Response.ClearHeaders(); curContext.Response.ContentType = "application/octet-stream"; curContext.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8) + ".pdf"); curContext.Response.BinaryWrite(pdfStream.ToArray()); curContext.Response.Flush(); curContext.Response.End(); } }

使用iTextSharp導出PDF