C1 ASP.NET Wijmo GridView导出为PDF格式

本文通过一个简单的途径实现了导出为PDF文件的方法,供参考:<ul> <li>通过使用 <a href="http://msdn.microsoft.com/en-us/library/system.io.stringwriter.aspx">StringWriter</a> and <a href="http://msdn.microsoft.com/en-us/library/system.web.ui.htmltextwriter.aspx">HtmlTextWriter</a> 类来保存Grid数据为HTML字符串。 </li> <li>然后,通过其他控件生成PDF文件。 如我们这里用到的<strong>C1PdfDocument控件 (<strong>C1PdfDocument是<a href="http://helpcentral.componentone.com/nethelp/c1pdf/#!Documents/componentonepdfforne.htm">C1Pdf</a> dll的一部分</strong>)</strong></li> <li>创建一个C1PdfDocument类的实例后,便可获得一个PDF文档的空白页面。你可以通过类如<strong>DrawStringHtml</strong>(), <strong>DrawString</strong>()的函数来写PDF文档内容</li></ul>

发布于 2013/11/05 00:00

Wijmo GridView没有内置数据导出Excel、PDF的接口函数,如果要导出为Excel或者PDF文件,需要写代码实现。

本文通过一个简单的途径实现了导出为PDF文件的方法,供参考:

  • 通过使用 StringWriter and HtmlTextWriter 类来保存Grid数据为HTML字符串。
  • 然后,通过其他控件生成PDF文件。 如我们这里用到的C1PdfDocument控件 (C1PdfDocument是http://helpcentral.componentone.com/nethelp/c1pdf/#!Documents/componentonepdfforne.htm dll的一部分)
  • 创建一个C1PdfDocument类的实例后,便可获得一个PDF文档的空白页面。你可以通过类如DrawStringHtml(), DrawString()的函数来写PDF文档内容
    主要代码如下:
  1: public void ExportToPDF(C1GridView grid)
  2:  {
  3:     C1PdfDocument pdfdoc = new C1PdfDocument();
  4:     RectangleF rect = pdfdoc.PageRectangle;
  5:     Font font = new Font("Times New Roman", 12);
  6:  
  7:     StringWriter sw = new StringWriter();
  8:     HtmlTextWriter htmlwriter = new HtmlTextWriter(sw);
  9:  
 10:     System.Web.UI.HtmlControls.HtmlForm form1 = new System.Web.UI.HtmlControls.HtmlForm();
 11:     grid.AllowPaging = false;
 12:     grid.DataBind();
 13:     form1.Controls.Add(grid);
 14:     form1.Controls[0].RenderControl(htmlwriter);
 15:     StringReader streader = new StringReader(sw.ToString());
 16:     string str = streader.ReadToEnd();
 17:     string savepath = Server.MapPath("Grapecity_TestData.pdf");
 18:  
 19:     for (int start = 0; ; )
 20:      {
 21:         start = pdfdoc.DrawStringHtml(str, font, Brushes.Black, rect, start);
 22:         // 导出完成
 23:         if (start >= int.MaxValue)
 24:          {
 25:            break;
 26:           }
 27:         // 插入新页面
 28:        pdfdoc.NewPage();
 29:      }
 30:  
 31:    pdfdoc.Save(savepath);
 32:    streader.Close();
 33:    lblUpdate.Text = "数据以及被导出为PDF文档";
 34:    System.Diagnostics.Process.Start(savepath);
 35:  }
 36: 

 

代码如下:

 

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态