首页 > 解决方案 > ParseXHtml 的“对象引用未设置为对象的实例”

问题描述

线路发生异常XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDoc, sr)

itextsharp.xmlworker.dll 中出现“System.NullReferenceException”类型的异常,但未在用户代码中处理

附加信息:对象引用未设置为对象的实例。

实际上每个参数都已明确设置为一个实例。

Dim pdfDoc As Document = New Document(PageSize.A4, 10, 10, 10, 10)
Dim pdfWriter As PdfWriter = pdfWriter.GetInstance(pdfDoc, Response.OutputStream)
pdfDoc.Open()

Dim b = Convert.FromBase64String(HttpContext.Current.Request.Form("code"))
Dim html = System.Text.Encoding.UTF8.GetString(b)
MsgBox(html)
Dim sr As StringReader = New StringReader(html)
MsgBox(IsNothing(pdfDoc).ToString()) 'False
MsgBox(IsNothing(pdfWriter).ToString()) 'False
MsgBox(IsNothing(sr).ToString()) 'False
XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDoc, sr)
pdfDoc.Close()

只有在包含标签时才会出现此异常html,如果是纯文本,则不会出现此异常。比如我设置了html = "<td></td>",就会出现异常;如果我删除/以使字符串作为 HTML 代码无效,则不会发生异常。

但由于我的目的是将 HTML 页面解析为 PDF,html因此必须是字符串化的源代码,带有很多 HTML 标签。

标签: asp.netvb.netitextxmlworkerhelper

解决方案


推荐阅读