ASP.NET GridView Tutorial
Lesson 291 of 301 · Generate pdf document from gridview data and store on web server – Part 59 · Database
Generate pdf document from gridview data and store on web server – Part 59
The HTML and the code used in the demo, can be found at the link below.
http://csharp-video-tutorials.blogspot.com/2013/04/generate-pdf-document-from-gridview.html
Link for csharp, asp.net, ado.net, dotnet basics and sql server video tutorial playlists
http://www.youtube.com/user/kudvenkat/playlists
Please watch Part 58, before proceeding with this video.
Step 1: Create an asp.net web application project. Add a folder with name “PDFDocuments” to the project. We will be using this folder to store the dynamically generated pdf document.
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 iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
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();
}
}
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)
{
PdfPTable pdfTable = new PdfPTable(GridView1.HeaderRow.Cells.Count);
foreach (TableCell gridViewHeaderCell in GridView1.HeaderRow.Cells)
{
Font font = new Font();
font.Color = new BaseColor(GridView1.HeaderStyle.ForeColor);
PdfPCell pdfCell = new PdfPCell(new Phrase(gridViewHeaderCell.Text, font));
pdfCell.BackgroundColor = new BaseColor(GridView1.HeaderStyle.BackColor);
pdfTable.AddCell(pdfCell);
}
foreach (GridViewRow gridViewRow in GridView1.Rows)
{
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);
}
}
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, new FileStream(Server.MapPath(“~/PDFDocuments/Employees.pdf”), FileMode.Create));
pdfDocument.Open();
pdfDocument.Add(pdfTable);
pdfDocument.Close();
}
At this point, run the application and click on the button. The data gets exported to a PDF as expected and is stored in the folder “PDFDocuments”. Notice that the PDF document, is generated using “Portrait” orientation.
To generate the PDF document in “Landscape” orientation, uncomment the following line
// pdfDocument.SetPageSize(PageSize.A4.Rotate());
Now, run the application and click on the button. The PDF document should be generated in landscape orientation.