Title: How to export grid view data to PDF in asp.net
Description:
Most the report are send to customers as in excel format.But some scenarios they might ask PDF format.
Example:
Earlier we learned how to export grid view data to word document,Import excel data to SQL Server.In this post i will show how to export grid view data to PDF file in asp.net.While exporting to pdf i have created a pdf document with desired size .Then conversion has done using HTML parser
Note:itextsharp tool has been used.so we need add those DLL into our application
Description:
Most the report are send to customers as in excel format.But some scenarios they might ask PDF format.
Example:
Earlier we learned how to export grid view data to word document,Import excel data to SQL Server.In this post i will show how to export grid view data to PDF file in asp.net.While exporting to pdf i have created a pdf document with desired size .Then conversion has done using HTML parser
Note:itextsharp tool has been used.so we need add those DLL into our application
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ExportToPDF.aspx.cs" Inherits="_ExportToPDF" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Export Gridview To PDF documnet</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GvExportDetails" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EnableModelValidation="True" > <Columns> <asp:BoundField DataField="ExportOrderID" HeaderText="ExportOrderID" SortExpression="ExportOrderID"/> <asp:BoundField DataField="ExportOrderName" HeaderText="ExportOrderName" SortExpression="ExportOrderName"/> <asp:BoundField DataField="ExportPhone" HeaderText="ExportPhone" SortExpression="ExportPhone" /> <asp:BoundField DataField="ExportAddress" HeaderText="ExportAddress" SortExpression="ExportAddress" /> <asp:BoundField DataField="ExportAmount" HeaderText="ExportAmount" SortExpression="ExportAmount" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestConnectionString %>" SelectCommand="SELECT * FROM [Orders]"></asp:SqlDataSource> </div> <asp:Button ID="btnExportOrdersToPdf" runat="server" OnClick="btnExportOrdersToPdf_Click" Text="OrderDetails to PDF" /> </form> </body> </html>Code behind:
using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data; using System.IO; using System.Data.SqlClient; using iTextSharp.text; using iTextSharp.text.pdf; using iTextSharp.text.html.simpleparser; public partial class _ExportToPDF : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnExportOrdersToPdf_Click(object sender, EventArgs e) { Response.Clear(); Response.AddHeader("content-disposition", "attachment; filename=OrderDetailsReport.pdf"); Response.Charset = string.Empty; Response.ContentType = "application/vnd.pdf"; StringWriter swr = new StringWriter(); HtmlTextWriter hwr = new HtmlTextWriter(swr); GvExportDetails.RenderControl(hwr); StringReader srd = new StringReader(swr.ToString()); Document OrderDetialsReport = new Document(PageSize.A1, 12f, 12f, 12f, 10f); HTMLWorker _htmlparser = new HTMLWorker(OrderDetialsReport); PdfWriter.GetInstance(OrderDetialsReport, Response.OutputStream); OrderDetialsReport.Open(); _htmlparser.Parse(srd); OrderDetialsReport.Close(); Response.Write(OrderDetialsReport); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { } }Note:Errors might be come like "registerforeventvalidation can only be called during render"
1 comment:
Great post with simple example.Thanks
Post a Comment