'对象引用未设置为对象的实例'用于HTMLWorker解析器

本文关键字:用于 HTMLWorker 实例 对象 对象引用 设置 | 更新日期: 2023-09-27 18:15:58

Document document = new Document(PageSize.LETTER, 10, 10, 10, 10);
StringReader reader = new StringReader(edittedHTML);
HTMLWorker worker = new HTMLWorker(document);
string fileName = "test.pdf";
PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create));
document.Open();
worker.Parse(reader);
worker.EndDocument();
worker.Close();
document.Close();

程序运行到worker时。解析,它抛出一个错误,就像标题所说的。

编辑后的HTML是HTML页面的HTML字符串。

有谁知道怎么解决这个问题,或者出了什么问题?

堆栈跟踪:

<>之前在iTextSharp.text.html.simpleparser.HTMLWorker。startelelement(字符串标签,字典' 2 attrs)在iTextSharp.text.xml.simpleparser.SimpleXMLParser。ProcessTag(布尔开始)在iTextSharp.text.xml.simpleparser.SimpleXMLParser。(TextReader读者)在iTextSharp.text.xml.simpleparser.SimpleXMLParser。解析(ISimpleXMLDocHandler文档,ISimpleXMLDocHandlerComment注释,TextReader r, Boolean html)在iTextSharp.text.html.simpleparser.HTMLWorker。解析(TextReader读者)在TestPdfApplication.Form1。在C:'Users'TLiu'Documents'Visual Studio 2010'Projects'TestPdfApplication'TestPdfApplication' form .cs:第68行中单击(对象发送方,EventArgs e)

'对象引用未设置为对象的实例'用于HTMLWorker解析器

我认为问题是由于解析器无法处理的HTML tags抛出的空引用异常。试着移除标签尽管不再支持HTMLWorker。它已经停止了,取而代之的是XML Worker

它看起来像一个空引用。试着用"using"来表示所有的IDisposable物品:

using (HTMLWorker worker = new HTMLWorker(document))
                { (......) }