XMLWorker exception: object reference not set to object instance

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) 
+4
source share
1 answer

Error in this line

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

// here it gave me an exception: the reference to the object is not installed in the instance of the object

because of the value of any of the input arguments, it was pointed to NULL. We can check it (the variable passing), whether it is null or the value before passing.

This following code is enough to get HTML content and write it to a 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 will be read from an HTML file and written to a PDF file.

+1
source

All Articles