Exporting WebPage To PDF File

Thursday, 7 July 2011
  • In This You Will See How To Export Your WebPages Into PDF File.
  • First Of All Open New Website.
  • And Add Following Code Into Default.aspx Page.
<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server"
             AutoGenerateColumns="False"
             DataSourceID="SqlDataSource1" Width="257px">
        <Columns>
             <asp:BoundField DataField="Name"
                  HeaderText="Name"
                  SortExpression="Name" />
             <asp:BoundField DataField="Location"
                  HeaderText="Location"
                  SortExpression="Location" />
        </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1"
             runat="server"
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
        SelectCommand="SELECT [Name], [Location] FROM [Test]">
        </asp:SqlDataSource>
   
    </div>
        <br />
        <asp:Button ID="btnExport" runat="server"
             OnClick="btnExport_Click"
             Text="Export to PDF" />
       
    </form>
</body>
</html>
  • Now Add Following Code Into Default.aspx.cs Page
  • Namespaces Used:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using System.IO;
using System.Collections;
using System.Net;

public partial class _Default : System.Web.UI.Page
{
    protected void btnExport_Click(object sender, EventArgs e)
    {
        HtmlForm form = new HtmlForm();
        form.Controls.Add(GridView1);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hTextWriter = new HtmlTextWriter(sw);
        form.Controls[0].RenderControl(hTextWriter);
        string html = sw.ToString();
        Document Doc = new Document();
               
        //PdfWriter.GetInstance
        //(Doc, new FileStream(Request.PhysicalApplicationPath
        //+ "\\VishalRane.pdf", FileMode.Create));

        PdfWriter.GetInstance(Doc, new FileStream(Environment.GetFolderPath
        (Environment.SpecialFolder.Desktop)+ "\\VishalRane.pdf", FileMode.Create));
        Doc.Open();
       
        Chunk c = new Chunk("Export GridView to PDF Using iTextSharp \n",FontFactory.GetFont("Verdana", 15));
        Paragraph p = new Paragraph();
        p.Alignment = Element.ALIGN_CENTER;
        p.Add(c);
        Chunk chunk1 = new Chunk("By Vishal RANE, vishalrane50@gmail.com \n",FontFactory.GetFont("Verdana", 8));
        Paragraph p1 = new Paragraph();
        p1.Alignment = Element.ALIGN_RIGHT;
        p1.Add(chunk1);
            
        Doc.Add(p);
        Doc.Add(p1);
               
        System.Xml.XmlTextReader xmlReader =
        new System.Xml.XmlTextReader(new StringReader(html));
        HtmlParser.Parse(Doc, xmlReader);
       
        Doc.Close();
        string Path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)+ "\\VishalRane.pdf";
       
       
       
        ShowPdf(Path);
      
       
    }
  • Now To Show PDF Use Following Code:
    private void ShowPdf(string strS)
    {
        Response.ClearContent();
        Response.ClearHeaders();
        Response.ContentType = "application/pdf";
        Response.AddHeader("Content-Disposition","attachment; filename=" + strS);
        Response.TransmitFile(strS);
        Response.End();
        //Response.WriteFile(strS);
        Response.Flush();
        Response.Clear();

    }
   
}

Note:

The WebPage data will be converted into PDF file, You can also add details such as ur name etc by using

 Chunk chunk1 = new Chunk("By Vishal RAne, vishalrane50@gmail.com \n",FontFactory.GetFont("Verdana", 8));

The pdf will be saved on desktop....
u can change location by using

PdfWriter.GetInstance(Doc, new FileStream(Environment.GetFolderPath
(Environment.SpecialFolder.Desktop)+ "\\VishalRane.pdf", FileMode.Create));



If You Have Any Doubt You Can Add Your Doubts In Comment Section

0 comments:

Post a Comment