2009-04-27 8 views
2

Weiß jemand, wie man einen HTML-Inhalt bekommt, wandelt es in pdf um und speichert es in der Datenbank?Wie bekomme ich HTML-Inhalt und wandle es mit iutxtsharp in PDF um?

Ich habe so viele Möglichkeiten ausprobiert, aber nichts scheint zu funktionieren. In einigen Artikeln wird geschrieben, um HTMLParse zu verwenden, in anderen HTMLWorker ... manchmal einen Fehler "Dokument hat keine Seiten" ... manchmal wirft es nur eine Ausnahme, aber es gab nicht den Fehler ...

Kennt jemand einen guten Weg, dies zu tun?

Ich verwende C# 3.0, ASP.NET MVC und LinQToSQL.

Vielen Dank im Voraus und viel !!

Antwort

2

Für HTML zu PDF tendiere ich dazu, HTMLDoc zu betrachten. Es ist eine Exe und keine Bibliothek, also ist es vielleicht nicht genau das, wonach Sie suchen, aber es wird Sie wahrscheinlich über den Berg bringen.

auf das Buch iText Sehen, sagt Lowagie:

„Eine der häufigsten Fragen über die iText-Mailingliste ist,‚Hat iText HTML2PDF Funktionalität zur Verfügung stellen?‘ Die offizielle Antwort ist nein, es wird empfohlen, HtmlDoc oder ICEBrowser zu verwenden. " Er fährt dann fort, ein Beispiel von HTMLParser zu zeigen, betont aber, dass es der großen Aufgabe, HTML zu parsen und zu präsentieren, nicht gerecht wird.

0
public class Pdf : IPdf 
    { 
     public FileStreamResult Make(string s) 
     { 
      using (var ms = new MemoryStream()) 
      { 
       using (var document = new Document()) 
       { 
        PdfWriter.GetInstance(document, ms); 
        document.Open(); 
        using (var str = new StringReader(s)) 
        { 

         var htmlWorker = new HTMLWorker(document); 

         htmlWorker.Parse(str); 
        } 
        document.Close(); 
       } 

       HttpContext.Current.Response.ContentType = "application/pdf"; 
       HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=MyPdfName.pdf"); 
       HttpContext.Current.Response.Buffer = true; 
       HttpContext.Current.Response.Clear(); 
       HttpContext.Current.Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length); 
       HttpContext.Current.Response.OutputStream.Flush(); 
       HttpContext.Current.Response.End(); 

       return new FileStreamResult(HttpContext.Current.Response.OutputStream, "application/pdf"); 
      } 
     } 
    } 
Verwandte Themen