ASP.NET GridView Tutorial - Export gridview to pdf in asp.net – Part 58

Database, Information Technology

ASP.NET GridView Tutorial

301 Lessons

Export gridview to pdf in asp.net – Part 58

The HTML and the code used in the demo, can be found at the link below.
http://csharp-video-tutorials.blogspot.com/2013/04/export-gridview-to-pdf-in-aspnet-part-58.html

Link for csharp, asp.net, ado.net, dotnet basics and sql server video tutorial playlists
http://www.youtube.com/user/kudvenkat/playlists

In this video, we will discuss about exporting gridview data to PDF.

Step 1: Create an asp.net web application project.

Step 2: Drag and drop a gridview control and a button control on webform1.aspx. Autoformat the gridview control to use “BrownSugar” scheme. Double click on the button control, to generate click event handler method.

Step 3: To generate PDF documents we will be using open source assembly – iTextSharp.dll. This assembly can be downloaded from http://sourceforge.net/projects/itextsharp. After you download the assembly, add a reference to it, from your web application.
a) In Solution Explorer, right click on the “References” folder and select “Add Reference”
b) Browse to the folder where you have downloaded the assembly and Click OK.

Step 4: Add the following “USING” statements, in your code-behind file.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;

Step 5: Copy and paste the following code. The code is well commented and is self-explanatory.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridViewData();
}
}

// ADO.NET code to retrieve data from database
private void BindGridViewData()
{
string CS = ConfigurationManager.ConnectionStrings[“DBCS”].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
SqlDataAdapter da = new SqlDataAdapter(“Select * from tblEmployee”, con);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}

protected void Button1_Click(object sender, EventArgs e)
{
int columnsCount = GridView1.HeaderRow.Cells.Count;
// Create the PDF Table specifying the number of columns
PdfPTable pdfTable = new PdfPTable(columnsCount);

// Loop thru each cell in GrdiView header row
foreach(TableCell gridViewHeaderCell in GridView1.HeaderRow.Cells)
{
// Create the Font Object for PDF document
Font font = new Font();
// Set the font color to GridView header row font color
font.Color = new BaseColor(GridView1.HeaderStyle.ForeColor);

// Create the PDF cell, specifying the text and font
PdfPCell pdfCell = new PdfPCell(new Phrase(gridViewHeaderCell.Text, font));

// Set the PDF cell backgroundcolor to GridView header row BackgroundColor color
pdfCell.BackgroundColor = new BaseColor(GridView1.HeaderStyle.BackColor);

// Add the cell to PDF table
pdfTable.AddCell(pdfCell);
}

// Loop thru each datarow in GrdiView
foreach (GridViewRow gridViewRow in GridView1.Rows)
{
if (gridViewRow.RowType == DataControlRowType.DataRow)
{
// Loop thru each cell in GrdiView data row
foreach (TableCell gridViewCell in gridViewRow.Cells)
{
Font font = new Font();
font.Color = new BaseColor(GridView1.RowStyle.ForeColor);

PdfPCell pdfCell = new PdfPCell(new Phrase(gridViewCell.Text, font));

pdfCell.BackgroundColor = new BaseColor(GridView1.RowStyle.BackColor);

pdfTable.AddCell(pdfCell);
}
}
}

// Create the PDF document specifying page size and margins
Document pdfDocument = new Document(PageSize.A4, 10f, 10f, 10f, 10f);
// Roate page using Rotate() function, if you want in Landscape
// pdfDocument.SetPageSize(PageSize.A4.Rotate());

// Using PageSize.A4_LANDSCAPE may not work as expected
// Document pdfDocument = new Document(PageSize.A4_LANDSCAPE, 10f, 10f, 10f, 10f);

PdfWriter.GetInstance(pdfDocument, Response.OutputStream);

pdfDocument.Open();
pdfDocument.Add(pdfTable);
pdfDocument.Close();

Response.ContentType = “application/pdf”;
Response.AppendHeader(“content-disposition”,
“attachment;filename=Employees.pdf”);
Response.Write(pdfDocument);
Response.Flush();
Response.End();
}

At this point, run the application and click on the button. The data gets exported to PDF as expected. If you are using Google chrome as your browser, you may get a browser warning stating – this type of file can harm your computer do you want to keep Employees.pdf anyway? This is a know issue with google chrome. Internet explorer, works fine.

    Access DataSource in asp.net AccessDataSource in asp.net Alert another gridview ascending asp net gridview access database asp.net asp.net c# bind xml to gridview asp.net data source controls asp.net datagridview asp.net datasource controls asp.net get data from access database asp.net gridview asp.net gridview bind to xml asp.net gridview edit asp.net gridview formatting asp.net gridview sqldatasource asp.net gridview xml c# asp.net gridview xml file asp.net ms access database example asp.net objectdatasource explained between bi-directional bidirectional bind xml file to gridview in asp.net binding xml file to gridview business objects C# c# accessdatasource c# data source object c# datagrid example c# get data from access database c# gridview sqldatasource c# sql data source connection string c# sqldatasource example c# sqldatasource selectcommand c# xslt example c# xslt transform xml document c# xslt tutorial c#.net cells changing data checkbox client-side code colspan CompareAllValues compute concurrency confirm ConflictDetection conflictdetection property content control controls convert xml node to attribute custom paging Data DataFormat String DataFormatString datagrid in asp.net datagrid in c# DataKeyNames dataset datasource datasource controls default paging delete delete confirmation delete data Deleting deleting data descending detailed data details view details view in asp.net DetailsView difference display Displaying displaying gridview document Drill Down Drilldown drilling down dropdownlist edit edit and update editing EmptyDataTemplate EmptyDataText event example Excel Export exporting footer footer row format formatting gridview at runtime Formatting gridview in code generate Grid View gridview gridview currency format gridview datasource xml file gridview date format gridview ms access database gridview retrieve templatefield value gridview RowDataBound gridview template gridview templatefield gridview templatefield get control GridViewDeletedEventArgs hierarchical data how how to display date in gridview without time How to get value from TemplateField in GridView how to pass data from gridview to another page in asp.net image field imagefield images implement implementing insert inside javascript jquery KeepInEditMode Merging. merge microsoft multiple rows nested nested gridview nesting no data no rows in datasource object datasource object datasource in asp.net objectdatasource objectdatasource in asp.net order OverwriteChanges page page numbers page size paging pdf properties read xml file with child nodes c# Repeater Retrieve ItemTemplate control value in Gridview row cells rowcommand rowdatabound rowdatabound event RowDataBound example RowDeleted event RowUpdated several rows show date only in gridview showing sort sort arrows sort images sortable Sorting sqldatasource sqldatasource in asp.net stored procedures summary data templatefield totals tutorial two or more rows Update update data Updated updating updating data Use use optimistic concurrency using validation Validation Controls web server when without without data source controls without datasource controls Word workbook working with xmldatasource in asp.net xslt basics xslt example xslt to transform xml to xml xslt transformation xslt transformation c# example