title: Converting aspx to pdf
body: <p>I have use ItextSharp to generate pdf file from an aspx page.</p>
  
  <p>But it gives me an error in an obj.Parse(se), where se is the string reader and it takes the path of:-</p>
  
  <pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; 
  </code></pre>
  
  <p>I am stuck with this problem.</p>
  
  <p>Please help and give suggesstion. </p>
  
  <p>Thank You</p>
  
  <pre><code>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();
  }
  }
  </code></pre>