6
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.Parse时,就像标题所说的那样抛出一个错误。

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

任何人都知道如何解决这个问题,或者出了什么问题?

堆栈跟踪:

在 iTextSharp.text.html.simpleparser.HTMLWorker.StartElement(字符串标签,IDictionary`2 attrs)
在 iTextSharp.text.xml.simpleparser.SimpleXMLParser.ProcessTag(布尔开始)
在 iTextSharp.text.xml.simpleparser.SimpleXMLParser.Go(TextReader 阅读器)
在 iTextSharp.text.xml.simpleparser.SimpleXMLParser.Parse(ISimpleXMLDocHandler 文档,ISimpleXMLDocHandlerComment 注释,TextReader r,布尔 html)
在 iTextSharp.text.html.simpleparser.HTMLWorker.Parse(TextReader 阅读器)
在 C:\Users\TLiu\Documents\Visual Studio 2010\Projects\TestPdfApplication\TestPdfApplication\Form1.cs: 68 中的 TestPdfApplication.Form1.button1_Click(Object sender, EventArgs e)
4

2 回答 2

3

HTML tags我认为问题是由于解析器无法处理而引发的空引用异常。尽管不再支持 HTMLWorker,但请尝试删除标签。 它已停止支持 XML Worker

于 2015-07-09T20:43:27.730 回答
1

它看起来像一个空引用。尝试对所有 IDisposable 项目使用 sintaxis“使用”:

using (HTMLWorker worker = new HTMLWorker(document))
                { (......) }
于 2015-07-15T14:50:44.467 回答