zoukankan      html  css  js  c++  java
  • 使用iTextSharp导出PDF

     /// <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:WindowsFontssimsun.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();
                }
    
            }
  • 相关阅读:
    从URL输入到页面展现,过程中发生了什么?
    Android ADB被占用 重启 ADB方法
    Android消息处理:EventBus、BroadCast和Handler-优缺点比较
    Android EventBus 的使用
    浅谈Java/Android下的注解
    如何理解Android中的xmlns
    【LeetCode】165
    【leetcode】155
    【LeetCode】12 & 13
    【LeetCode】66 & 67- Plus One & Add Binary
  • 原文地址:https://www.cnblogs.com/tangchun/p/6950919.html
Copyright © 2011-2022 走看看