ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – XMLWorker异常:未将对象引用设置为对象的实例

2019-07-09 15:04:30  阅读:311  来源: 互联网

标签:c exception asp-net html-parsing export-to-pdf


我想将html导出为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();

所有例外:

 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)

解决方法:

这一行出错

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

//这里它给了我一个例外:对象引用未设置为的实例
                                                                  一个东西

 由于任何一个输入参数的值指向NULL我们可以在传递之前检查它(变量将通过)是否为null或值.

以下代码足以获取HTML内容并将其写入PDF文件

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();

它将从HTML文件中读取并将其写入创建的PDF文件中

标签:c,exception,asp-net,html-parsing,export-to-pdf
来源: https://codeday.me/bug/20190709/1414257.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有