2012-08-06 123 views
0

时,我想在我的PDF导出htmlcode堆栈空的错误使用iTextSharp的转换HTML为PDF

var document = new Document(); 
      string filePath = Server.MapPath("~/generatedBook"); 
      string exceptionPath = Server.MapPath("~/exceptions"); 
      PdfWriter pdfWriter = PdfWriter.GetInstance(document, 
      new FileStream(filePath + "/Book"+_IdSes+".pdf", FileMode.Create)); 
      pdfWriter.SetFullCompression(); 
      pdfWriter.StrictImageSequence = true; 
      pdfWriter.SetLinearPageMode(); 


      try 
      { 
       document.SetPageSize(PageSize.A4.Rotate()); 
       document.SetPageSize(new Rectangle(792f, 612f)); // 11" x 8.5" 

//这里它给我的异常堆栈是空的

List<iTextSharp.text.IElement> htmlarraylist = 
iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(new 
             StringReader(htmlcode.ToString()), st); 

// htmlcode是类型的StringBuilder

foreach (IElement t in htmlarraylist) 
       { 
        document.Add((IElement)t); 
       } 


       document.Close(); 

全部异常的

System.InvalidOperationException: Stack empty. 
    at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 
    at System.Collections.Generic.Stack`1.Pop() 
    at iTextSharp.text.html.simpleparser.HTMLWorker.EndElement(String tag) 
    at iTextSharp.text.xml.simpleparser.SimpleXMLParser.ProcessTag(Boolean start) 
    at iTextSharp.text.xml.simpleparser.SimpleXMLParser.Go(TextReader reader) 
    at iTextSharp.text.xml.simpleparser.SimpleXMLParser.Parse(ISimpleXMLDocHandler doc,   
    ISimpleXMLDocHandlerComment comment, TextReader r, Boolean html) 
    at iTextSharp.text.html.simpleparser.HTMLWorker.Parse(TextReader reader) 

任何想法?在此先感谢

回答

1

HTMLWorker已弃用,不会进行维护。它被xml-worker取代。