2009-02-05 11 views
6

Ich habe eine ASP.NET-Webseite, die ein dynamisch generierter Bericht ist. Aus geschäftlichen Gründen muss dieser genaue Bericht als PDF erstellt werden. Was ist der beste Weg, dies zu tun? Das Festlegen des ausgewählten Druckers auf Adobe PDF ist keine Option.HTML-Dokument in PDF?

Lernen Sie programmgesteuert PDFs von Grund auf neu zu erstellen? Gibt es eine Möglichkeit, es in einigen Browser-Steuerelement zu rendern, dann speichern Sie die Ausgabe?

Antwort

4

Wenn der Bericht ein Gitter ist (wahrscheinlich), this blog post using iTextSharp helfen können. iTextSharp ist gut und die vollständigste PDF-API für C#, die ich gesehen habe.

+2

Wenn es kein einfaches Raster ist, ist iTestSharp nicht wirklich für seine Bedürfnisse geeignet - er benötigt eine einstufige Konvertierung von HTML in PDF, um nicht die gesamte Seite Zeile für Zeile wieder als PDF zu schreiben. – MGOwen

3

Ich weiß nicht, ob ABCpdf .NET kostenlos ist, aber ich habe gute Dinge darüber gehört. Ich denke, es kann HTML-Dateien direkt in PDFs rendern.

http://www.websupergoo.com/abcpdf-5.htm

Ich habe verwendet PDFsharp (vorausgesetzt, Sie verwenden C# in Verbindung mit ASP) und es funktioniert gut. HTML wird jedoch nicht so dargestellt, wie ich es weiß.

http://pdfsharp.com/PDFsharp/

-1

Sie erwähnte Sie nicht, wenn Sie eine Open-Source-Lösung oder einer $$ ein suchen?

Aber hier ist ein Open-Source-Konverter: http://sourceforge.net/projects/itextsharp/ die ziemlich anständig ist.

+1

FYI - Sie haben jetzt ein "kommerzielles" Lizenzmodell, das nicht kostenlos ist. Keine Details zu den Kosten auf ihrer Website. – NotMe

0

Wenn Sie speziell auf PDF-Generierung ausgerichtet sind, kann ich die Produkte Dynamic PDF von CeTe empfehlen. Sie sind ein bisschen teuer, aber sie haben viele Optionen, sind einfach zu bedienen und sind ziemlich gut dokumentiert.

8

wkhtmltopdf - Ich kompilierte es in Windows und es funktioniert super. Es verwendet WebKit (Safari, Chrome, etc.), um eine HTML-Seite in PDF zu rendern, und es ist kostenlos!

+0

Finden Sie es unter: http://code.google.com/p/wkhtmltopdf/ Es sieht ziemlich gut aus ein paar schnelle Tests. Es sollte die Arbeit machen, wenn GPLv3 für Sie arbeitet. – RBerteig

+0

überall kann ich Windows-Binärdateien bekommen ??? – opensas

+0

http://code.google.com/p/wkhtmltopdf/ und es ist eine einzelne Binärdatei für Windows – jle

0

Haben Sie sich SQL Server Reporting Services angesehen? Wenn Sie MSSQL 2005/2008 verwenden, haben Sie wahrscheinlich bereits Reporting-Dienste, die Sie nur konfigurieren müssen. Sie können Ihre Berichte dort hosten und in wenigen Zeilen Code den Bericht als PDF-Datei erhalten.

//create the web request for the report based on a URL that will define export 
    //format, parameter values, etc. 
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(reportUrl); 
    //send creditials if necessary 
    request.Credentials = new NetworkCredential(userName, password); 
    //response will contain the PDF file as a stream 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

hier ein link ist, die auch

3

Im vergangenen Jahr habe ich ein Projekt mit PDFs, und ich habe gerade erfahren, das PDF-Format, für die ich sehr froh bin, könnte helfen.

Die PDF specification ist frei verfügbar, und PDF ist ziemlich zugänglich und als Programmierer leicht zu verstehen. Ein PDF ist ein Dokument im Klartext, optional komprimiert. Jede Seite ist eine kartesische Ebene, auf der Sie geometrische Formen eins nach dem anderen zeichnen. Es ist Low Level und maßgeschneidert für die Software-Generierung.Offensichtlich gibt es fortgeschrittene Dinge wie Glyphen und Dinge, aber wie jede gut entwickelte Technologie können Sie bei den Abstraktionsschichten bleiben, wenn Sie möchten.

Ob Sie ein direktes PDF erstellen, hängt von der Komplexität Ihrer Dokumente ab. Für grundlegende Dinge wie einfache Grafiken, Texte und Bilder (zum Beispiel eine Rechnung ist ein guter Kandidat), dann würde ich einfach PDF direkt schreiben. Sie werden gute Erfahrungen machen und Sie werden die volle Kontrolle haben.

Für kompliziertere Dinge wie Tabellen und Tortendiagramme (für die PDF zu niedrig ist, um direkt zu schreiben), dann würde ich in eine Bibliothek oder ein Toolkit irgendeiner Art schauen.

0

Verwenden Sie PDF Duo .NET Converting-Komponente. Es wandelt HTML in PDF um, sodass Sie nach dem Generieren Ihres HTML-Berichts die PDF-Datei in Ihrem ASP.NET-Projekt erstellen können.

0

Sie können auch Produkte finden, die dies tun von Adobe, Foxit und Windward Reports (Haftungsausschluss - ich bin der CTO bei Windward).