2008-10-25 4 views
40

Weiß jemand, ob es möglich ist, eine HTML-Seite (URL) mit iText in ein PDF zu konvertieren?Verwenden von iText zum Konvertieren von HTML in PDF

Wenn die Antwort ‚nein‘ lautet, als das ist in Ordnung so gut, da ich meine Zeit zu stoppen verschwenden versucht, es zu arbeiten und verbringen nur etwas Geld auf einem von einer Reihe von Komponenten, die ich weiß, kann :)

Vielen Dank im Voraus für Ihre Antworten!

+5

UPDATE: iText HTML in PDF konvertiert, aber es ist Sheet Unterstützung fleckige ist. 5.0.6 wurde im Februar 2011 veröffentlicht und enthielt eine Überarbeitung des zugehörigen Codes mit wenig sichtbaren Verhaltensänderungen. Die nächste Version soll signifikante Verbesserungen in der HTML-> PDF-Funktionalität enthalten. –

+1

in der Tat überprüfen: [xmlworker] (https://sourceforge.net/projects/xmlworker/) eine Ergänzung zu iText, es unterstützt mehr CSS. – Redlab

+0

UPDATE: Diesen neueren Thread gefunden, der die aktuellen Optionen wirklich gut zusammenfasst http://stackoverflow.com/questions/4055838/best-commercial-html-to-pdf-c-component – Mark

Antwort

7

Ich habe mit ABCPdf von webSupergoo beendet. Es funktioniert wirklich gut und für etwa $ 350 hat es mir Stunden und Stunden basierend auf Ihren Kommentaren oben gespeichert. Danke nochmals Daniel und Bratch für deine Kommentare.

-1

Als ich dieses Jahr HTML-zu-PDF-Konvertierung benötigte, habe ich versucht, Winnovative HTML zu PDF Converter zu testen (ich denke ExpertPDF ist das gleiche Produkt auch). Es hat super geklappt und wir haben eine Lizenz bei dieser Firma gekauft. Ich gehe danach nicht tiefer darauf ein.

29

Ich denke, das ist genau das, was Sie für

http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html

http://code.google.com/p/flying-saucer

Flying Saucer erster Linie, zu suchen ist render spec-compli Ant XHTML und CSS 2.1 auf dem Bildschirm als Swing-Komponente. Obwohl es ursprünglich zum Einbetten von Markup in Desktop-Anwendungen gedacht war (Dinge wie der iTunes Music Store), wurde Flying Saucer auch mit iText erweitert. Dies macht es sehr einfach, XHTML sowohl in PDFs als auch in Bildern und auf dem Bildschirm zu rendern. Fliegende Untertasse benötigt Java 1.4 oder höher.

+3

Link zur fliegenden Untertasse (xhtmlrenderer) sollte jetzt sein: http: // code .google.com/p/fliegende-untertasse/ –

+0

Weiß jemand, wie man die Bildqualität in den erzeugten PDF Akten verbessert? – user584397

+0

@ user584397 Benutzer ein größeres Bild und skalieren Sie es herunter, das Bild ist in das PDF eingebettet. –

0

Verwendung iText des HTMLWorker

Example

+1

'HTMLWorker' ist veraltet. Sein Nachfolger, 'XMLWorker', ist am Sonnenuntergang. Der aktuelle Stand der Technik ist iText 7 + pdfHTML. –

1

Die Antwort auf Ihre Frage ist eigentlich zweifach. Zunächst müssen Sie angeben, was Sie mit dem gerenderten HTML tun möchten: Speichern Sie es in einer neuen PDF-Datei oder verwenden Sie es in einem anderen Renderkontext (fügen Sie es zum Beispiel einem anderen Dokument hinzu, das Sie generieren).

Ersteres ist relativ leicht erreicht den Flying Saucer-Framework, die hier gefunden werden kann: https://github.com/flyingsaucerproject/flyingsaucer

Letztere eigentlich ein viel umfassenderes Problem, das weiter kategorisiert werden muss. Mit iText können Sie iText-Elemente (d. H. Paragraph, Phrase, Chunk usw.) nicht mit dem generierten HTML kombinieren (zumindest trivial). Sie können sich mit der Methode der Methode heraushacken und den HTML-Code für diese Vorlage generieren.

Wenn Sie auf der anderen Seite den generierten HTML-Code mit Wasserzeichen, Daten oder ähnlichem versehen möchten, können Sie dies mit iText tun.

Fazit: Sie können das gerenderte HTML nicht einfach in andere PDF-Generierungskontexte integrieren, aber Sie können HTML direkt in ein leeres PDF-Dokument rendern.

+0

mit iText pdfHTML gibt es tatsächlich eine Methode 'renderElements', die genau das tut, was Sie für unmöglich halten. Es rendert HTML-Syntax für iText-Elementblöcke wie Absatz, Tabelle usw. –

3

Der einfachste Weg, dies zu tun ist mit pdfHTML. Es ist ein iText7-Add-on, das HTML5 (+ CSS3) in PDF-Syntax konvertiert.

Der Code ist ziemlich einfach:

HtmlConverter.convertToPdf(
     "<b>This text should be written in bold.</b>",  // html to be converted 
     new PdfWriter(
      new File("C://users/mark/documents/output.pdf") // destination file 
     ) 
    ); 

mehr zu erfahren, gehen Sie zu http://itextpdf.com/itext7/pdfHTML