10 Stimmen

PDF aus ASP.NET aus rohem HTML/CSS-Inhalt generieren?

Ich versende E-Mails, an die Rechnungen im PDF-Format angehängt sind. Ich bin bereits - an anderer Stelle in der Anwendung - erstellen die Rechnungen in einer .aspx-Seite. Ich möchte Server.Execute verwenden, um die HTML-Ausgabe zurückzugeben und daraus ein PDF zu generieren. Andernfalls müsste ich ein Reporting-Tool verwenden, um die Rechnung in ein PDF zu "zeichnen". Das ist aus vielen Gründen problematisch, nicht zuletzt, weil ich bei jeder kleinen Änderung sowohl die .aspx-Seite als auch den Bericht aktualisieren müsste. Was ist zu tun...

0 Stimmen

1voto

crb Punkte 8099

Das klingt wie ein Job für Prinz . Es kann aus HTML und CSS eine PDF-Datei erzeugen, die Sie dann Ihren Benutzern präsentieren können. Es unterstützt CSS3 besser als die meisten Webbrowser (zu den Mitarbeitern gehört Håkon Wium Lie, der Erfinder von CSS).

Siehe die Proben besonders die für Wikipedia-Seiten, wegen der schönen Ausgabe, die es erzeugen kann. Es gibt auch eine interessante Google Tech Talk mit den Autoren.

Editar: Es gibt eine .NET-Wrapper verfügbar.

0 Stimmen

Dieses Produkt sieht gut aus, aber es ist nicht wirklich gut gebaut, um mit einer .NET-Anwendung verpackt zu werden. Sieht so aus, als hätten sie eine .dll, die man zumindest einpacken kann.

0 Stimmen

Ich kann nicht sagen, dass ich es ausprobiert habe - ich habe es mit MindTouch Deki verwendet, das die .exe direkt aufruft. Was ich sagen kann, ist, dass die Ausgabe großartig ist - es ist mehr wie LaTeX als CutePDF vom Internet Explorer :)

1 Stimmen

Das Logo, das sie auf die erste Seite eines jeden Dokuments kleben, gefällt mir nicht.

1voto

Gregory A Beamer Punkte 16670

Da Sie die Antwort selbst erstellen, können Sie ein Tool wie Report.NET verwenden: http://sourceforge.net/projects/report/

Ich stimme jedoch nicht mit den Antworten überein, die besagen, dass Sie nicht direkt von der Ausgabe in PDF konvertieren können, da Sie die Seite "erneut aufrufen" und den HTML-Code als Stream erhalten und konvertieren können. Ich bin mir jedoch nicht sicher, welches Tool Sie dafür verwenden möchten. Mit anderen Worten, es ist möglich, aber ich bin mir nicht sicher, ob es sich lohnt. Die PDF-Erstellungsbibliotheken, wie Report.NET, sind einfacher, auch wenn sie die Wiederverwendung einiger Logik und keine automatische Konvertierung erzwingen.

Ich habe diese Komponente nicht ausprobiert, aber ich habe von denen, die sie ausprobiert haben, viel Gutes darüber gehört. Das Modell ist eher HTML-ähnlich, aber ich bin mir nicht sicher, ob man einfach ein gerendertes ASPX an sie senden kann, um PDF zu erstellen: http://www.websupergoo.com/abcpdf-8.htm

1voto

Constantine Punkte 230

Wenn Sie versuchen, eine Software zur Umwandlung von HTML in PDF über GOOGLE bekommst du einen Haufen von diesem Zeug. Es gibt etwa 10 Führer, aber die meisten von ihnen verwenden IE dlls im Hintergrundmodus. Nur ein paar von ihnen verwenden ihre eigene Parsing-Engine. Bitte versuchen Sie PDF Duo .NET Komponente in Ihrem ASP.NET-Projekt, wenn Sie ein PDF programmatisch erstellen möchten. Es ist eine leichte Komponente für eine kühle Generierung von PDF-Aufrufen, Berichte z.B.

1 Stimmen

Standort-Lizenz: US$1170

0voto

Ich würde einen anderen Weg einschlagen. Angenommen, Sie verwenden SQL Server, verwenden Sie SSRS und generieren Sie das PDF auf diese Weise.

0voto

Winnovative Punkte 118

Eine mögliche Minimallösung ist die Verwendung von Server.Execute(), um den HTML-Code der Rechnungsseite zu erhalten und diesen Code in eine PDF-Datei zu konvertieren. winnovative html zu pdf api für .net ist:

TextWriter outTextWriter = new StringWriter();
Server.Execute("Invoice.aspx", outTextWriter);

HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

byte[] pdfBytes = htmlToPdfConverter.ConvertHtml(outTextWriter.ToString(),
            httpContext.Current.Request.Url.AbsoluteUri);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X