In this article I will
explain how to export ASP.Net web page to PDF.
First, you will
need to download ITextsharp and add its reference to your project. ITextsharp
is a free HTML to PDF Library. You can download it using the following link.
http://sourceforge.net/projects/itextsharp/
The HTML markup of
the page contains a sample page with an image, some text and an HTML table.
Also there’s an Export PDF button on click of which we will export the page to
PDF.
Below is the aspx
page design.
<form id="form1" runat="server">
<table>
<tr>
<td>
<asp:Panel ID="pnImage" runat="server">
<table>
<tr>
<td>
<asp:GridView ID="gvProducts"
runat="server"
AllowPaging="True"
Width="800px"
AutoGenerateColumns="false"
PageSize="20">
<Columns>
<asp:TemplateField HeaderText="Catalog
No">
<ItemTemplate>
<a href='ProductSpecification.aspx?ItemCode=<%#Eval("Catalog No") %>' style="font-size: small;
color: Black;" class="underLine" target="_DBWindow">
<%#Eval("Catalog
No")%></a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
<asp:Image ID="imgHeader" runat="server" ImageUrl="~/images/index_02.jpg" />
</asp:Panel>
<asp:Button ID="btnExportPDF" runat="server" Text="Export" OnClick="btnExportPDF_Click" />
</td>
</tr>
</table>
</form>
Use the below Name Spaces
in aspx.cs page.
using System.IO;
using
iTextSharp.text;
using
iTextSharp.text.html.simpleparser;
using
iTextSharp.text.pdf;
Write the below code in Export PDF button click
event.
protected void
btnExportPDF_Click(object sender, EventArgs e)
{
dsGetProducts =
ObjBusiness.GetAllProducts();
gvProducts.DataSource = dsGetProducts;
gvProducts.DataBind();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=First.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter
sw = new StringWriter();
HtmlTextWriter
hw = new HtmlTextWriter(sw);
this.Page.RenderControl(hw);
StringReader
sr = new StringReader(sw.ToString());
Document
pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker
htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc,
Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
If you get below error follow this URL.
URL
:
http://www.aspsnippets.com/Articles/RegisterForEventValidation-can-only-be-called-during-Render.aspx
Error:
RegisterForEventValidation can only be
called during Render();
No comments:
Post a Comment