2013-04-15 31 views
2

使用iTextSharp的Im。 5.4.1。我正在嘗試從HTML生成PDF。下面粘貼的代碼行給出錯誤名稱'標記'在當前上下文中不存在。這適用於itextSharp ver 5.2.1。有人可以告訴標記屬於5.4.1版中的哪一類。無法在itextsharp中找到標記

document.Add(new Header(**Markup**.HTML_ATTR_STYLESHEET, string.Empty)); 

代碼:

/// <summary> 
     /// Renders the PDF to an array of bytes 
     /// </summary> 
     public byte[] RenderPdf() 
     { 

      //Document is inbuilt class, available in iTextSharp 
      MemoryStream file = new MemoryStream(); 
      Document document = new Document(this.PageSize); 
      PdfWriter writer = PdfWriter.GetInstance(document, file); 

      //allow modifications of the document 
      if (this.BeforeRender is RenderEvent) 
      { 
       this.BeforeRender(writer, document); 
      } 

      //header 
      document.Add(new Header(Markup.HTML_ATTR_STYLESHEET, string.Empty)); 
      document.Open(); 

      //render each page that has been added 
      foreach (HtmlPdfPage page in this._Pages) 
      { 
       document.NewPage(); 

       //generate this page of text 
       MemoryStream output = new MemoryStream(); 
       StreamWriter html = new StreamWriter(output, Encoding.UTF8); 

       //get the page output 
       html.Write(string.Concat(HtmlToPdfBuilder.DOCUMENT_HTML_START, page._Html.ToString(), HtmlToPdfBuilder.DOCUMENT_HTML_END)); 
       html.Close(); 
       html.Dispose(); 

       //read the created stream 
       MemoryStream generate = new MemoryStream(output.ToArray()); 
       StreamReader reader = new StreamReader(generate); 
       foreach (var item in (IEnumerable)HTMLWorker.ParseToList(reader, this._Styles)) 
       { 
        document.Add((IElement)item); 
       } 

       //cleanup these streams 
       html.Dispose(); 
       reader.Dispose(); 
       output.Dispose(); 
       generate.Dispose(); 

      } 

      //after rendering 
      if (this.AfterRender is RenderEvent) 
      { 
       this.AfterRender(writer, document); 
      } 

      //return the rendered PDF 
      document.Close(); 
      return file.ToArray(); 

     } 
+0

的標記類很久以前已被刪除,用的HTMLWriter一起。你想創建HTML? –

+0

ya。我正在嘗試在.net MVC中生成pdf,並通過Hugo Bonacci發現了這個代碼。你能不能直接找到一種更好的方法來在MVC應用程序中從HTML生成PDF。 – BumbleBee

+1

我不認識Hugo Bonacci,但是如果他告訴你你需要Markup課程來做到這一點,那麼他錯了。你可以閱讀http://www.rgagnon.com/javadetails/java-html-to-pdf-using-itext.html –

回答

0

試試這個:

private const string HTML_ATTR_STYLESHEET = "stylesheet"; 

document.Add(new Header(HTML_ATTR_STYLESHEET, string.Empty)); 
相關問題