HTML-zu-PDF-Konvertierung - Fast funktioniert, aber
Ich verbrachte einen guten Teil der letzten Tage auf der Suche für einfach zu bedienende Bibliothek, die in ein html-string als Eingabe und erzeugt die PDF-Ausgabe als Datei an den client-browser.
Den wenigen Dutzend tools, die ich ausprobiert habe, ein Produkt namens NReco PDF-Generator, das ist eine von vielen derivative Instrumente auf der Grundlage wkhtmltopdf, scheint meine Anforderungen zu erfüllen.
Hier mein test code:
var strHtml = String.Format("<h1>Hello World!</h1");
Response.Clear();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf");
(new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(strHtml, null, Response.OutputStream);
Response.End();
Mit dem obigen code, den ich erwartete, um zu sehen, eine PDF-Datei weitergegeben werden mein browser. Stattdessen sehe ich nur die Ausgabe-stream erzeugt in meinem Entwickler-Konsole. (BTW, ich bin mit Chrome)
Meine Frage ist NICHT, wie das besagte Produkt funktioniert, ich denke, das funktioniert wie vorgesehen, aber es geht darum ob mein code fehlt, ist jede Aktion für die .NET Response
Objekt oder etwas falsch zu machen. Wie ich schon angemerkt habe, sehe ich die konvertierte Pdf-stream in der Konsole. Ich denke, es ist nur eine Frage der Erfassung, dass der stream in eine Datei und übergeben es dem Kunden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die fehlende Zeile ist
Response.BinaryWrite(pdfBytes)
. Ohne diese Zeile die PDF-Datei wird nicht für den Benutzer wiedergegeben.Soweit ich das sagen kann, müssen Sie nicht die Zeilen:
Folgende Werke für mich (Offensichtlich, müssen Sie
using NReco.PdfGenerator;
)Speichern Sie die PDF-Datei als byte-array, dann schreiben Sie es auf die Antwort.
statt
Inspiration für diesen entnommen NReco Website.