how to convert web page to pdf
In this post i will show how to convert web page to pdf using iTextSharp.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Pdf.aspx.cs" Inherits="Pdf" %> <!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></title> </head> <body> <form id="form1" runat="server"> <asp:PlaceHolder ID="PlaceholderPdf" runat="server"></asp:PlaceHolder> <div> <table border="1"> <tr> <td colspan="2"> aspdotnetcodebook </td> </tr> <tr> <td> cell1 </td> <td> cell2 </td> </tr> <tr> <td colspan="2"> <asp:Label ID="lblLabel" runat="server" Text="Label Test"></asp:Label> </td> </tr> </table> </div> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Text.RegularExpressions; using iTextSharp.text; using iTextSharp.text.pdf; using iTextSharp.text.html; using iTextSharp.text.xml; using System.Xml; using iTextSharp.text.html.simpleparser; public partial class Pdf : System.Web.UI.Page { protected override void Render(HtmlTextWriter writer) { MemoryStream mem = new MemoryStream(); StreamWriter twr = new StreamWriter(mem); HtmlTextWriter myWriter = new HtmlTextWriter(twr); base.Render(myWriter); myWriter.Flush(); myWriter.Dispose(); StreamReader strmRdr = new StreamReader(mem); strmRdr.BaseStream.Position = 0; string pageContent = strmRdr.ReadToEnd(); strmRdr.Dispose(); mem.Dispose(); writer.Write(pageContent); CreatePDFDocument(pageContent); } public void CreatePDFDocument(string strHtml) { string strFileName = HttpContext.Current.Server.MapPath("test.pdf"); // step 1: creation of a document-object Document document = new Document(); // step 2: // we create a writer that listens to the document PdfWriter.GetInstance(document, new FileStream(strFileName, FileMode.Create)); StringReader se = new StringReader(strHtml); HTMLWorker obj = new HTMLWorker(document); document.Open(); obj.Parse(se); document.Close(); ShowPdf(strFileName); } public void ShowPdf(string strFileName) { Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "inline;filename=" + strFileName); Response.ContentType = "application/pdf"; Response.WriteFile(strFileName); Response.Flush(); Response.Clear(); } }
0 comments: