4

I want to export html to pdf

 var document = new Document();
 PdfWriter pdfWriter = PdfWriter.GetInstance(document, 
                                   new FileStream("/my.pdf", FileMode.Create)); 
  pdfWriter.SetFullCompression();
  pdfWriter.StrictImageSequence = true;
  pdfWriter.SetLinearPageMode();

 var sr = new StringReader(htmlcode);
document.Open();

var k = XMLWorkerHelper.GetInstance();
k.ParseXHtml(pdfWriter, document, sr);
//here it gave me an exception: Object reference not set to an instance of 
                                                                  an object


  sr.Close();
   document.Close();

Response.ContentType = "Application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename="my.pdf");
Response.TransmitFile(@"c:\test\my.pdf");
Response.Flush();
Response.End();
Response.Close();

All exceptions:

 System.NullReferenceException: Object reference not set to an 
instance of an object.
       at iTextSharp.tool.xml.pipeline.html.HtmlPipeline.Close
                          (IWorkerContext context, Tag t, ProcessObject po)
       at iTextSharp.tool.xml.XMLWorker.EndElement(String tag, String ns)
       at iTextSharp.tool.xml.parser.XMLParser.EndElement()
    at iTextSharp.tool.xml.parser.state.ClosingTagState.Process(Char character)
       at iTextSharp.tool.xml.parser.XMLParser.ParseWithReader(TextReader reader)
       at iTextSharp.tool.xml.XMLWorkerHelper.ParseXHtml(PdfWriter writer,
                                                    Document doc, TextReader inp)

1 Answer 1

1

Error in this line

var k = XMLWorkerHelper.GetInstance();
k.ParseXHtml(pdfWriter, document, sr);

//here it gave me an exception: Object reference not set to an instance of an object

due to value of any one of input arguments was pointing to NULL We can Check it(variable going to pass) whether its null or value, before passing.

This following code is just enough to get get HTML content and write it to PDF file

Document pdfDoc = new Document(PageSize.A4, 10, 10, 10, 10);  
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, new FileStream(@"D:\Syed\New PDF\PDF.pdf", FileMode.Create));// Output PDF File Path
Response.Write("File Created Successfully");
pdfDoc.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, new StreamReader(@"D:\Syed\test.html"));//This is input HTML file path
pdfDoc.Close();

It 'll read from HTML file and wrote them into created PDF file

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.