加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 21:38:45 所属栏目:百科 来源:网络整理
导读:我想将html导出为pdf var document = new Document(); PdfWriter pdfWriter = PdfWriter.GetInstance(document,new FileStream("/my.pdf",FileMode.Create)); pdfWriter.SetFullCompression(); pdfWriter.StrictImageSequence = true; pdfWriter.SetLinearPa
我想将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:testmy.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,sr);

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读