# HTML in PDF umwandeln



## gizmo (29. Nov 2006)

Hallo zusammen

Ich suche eine Bibliothek, welche es mir ermöglicht, HTML in PDF umzuwandeln. Diese sollte kostenlos verfügbar sein und mit normalen Webseiten umgehen könnnen.

Ich denke zwar, dass ich so ziemlich alles gesucht und versucht habe (YAHP, Flying Saucer, JTidy->Xalan->FOP), aber vielleicht kann mir ja trotzdem jemand weiterhelfen.


----------



## Wildcard (29. Nov 2006)

Wenn dir die HTML Fähigkeiten der JEditorPane ausreichen kannst du http://www.lowagie.com/iText/ nehmen.
Der Integrierte Browser von jDic sollte allerdings besser geignet sein.
Wenn das auch nicht ausreichend ist bleibt dir wohl nur was kommerzielles:
http://www.icesoft.com/products/icebrowser_itext.html


----------



## gizmo (30. Nov 2006)

Dein Beitrag hat mir schon weiter geholfen, danke. Weisst du auch, wie ich es schaffe, eine Swing Komponente zu zeichnen, ohne dass  sie auf dem Bildschirm angezeigt wird (Wichtig, weil das Programm auf einem Server laufen soll)?


----------



## The_S (30. Nov 2006)

Zeichne doch einfach auf ein BufferedImage  bzw. hä?


----------



## Wildcard (30. Nov 2006)

Einfach ein Grafics-Objekt besorgen und übergeben.


----------



## gizmo (30. Nov 2006)

Tut mir leid, wenn ich mich etwas ungeschickt anstelle, aber ich habe es probiert. Ich habe versucht, mit einem JEditorPane HTML zu rendern, dies hat geklappt. Danach habe ich den Output in ein PDF geschrieben, auch dies hat funktioniert. Es wurde aber immer das Fenster angezeigt, wenn ich setVisible(false) gemacht hab, dann war auch das PDF leer.

Ich will also das JEditorPane in ein PDF schreiben, ohne dass es sichtbar ist. Um das PDF zu erzeugen bin ich nach diesem Muster vorgegangen: http://itextdocs.lowagie.com/exampl...s/objects/tables/alternatives/JTable2Pdf.java.


----------



## gizmo (30. Nov 2006)

http://www.java-forum.org/de/viewtopic.php?t=40270 Hat mir weitergeholfen. Was nun noch ein Problem ist, ich weiss nicht, wann das HTML fertig gerendert ist, damit ich das PDF erzeugen kann.


----------



## Wildcard (30. Nov 2006)

Soforn alles im gleichen Thread läuft hätte ich erwartet das es sich um eine synchrone Operation handelt  ???:L 
Versuch's mal mit SwingUtilities#invokeLater


----------



## gizmo (1. Dez 2006)

Es ist eine asynchrone Operation. Das mit dem SwingWorker werde ich probieren. Ich habe mal gehört, dass man auf einem Application Server die Threads nicht selbst verwalten kann/muss (Bin da noch kein Fachmann), funktioniert das dann darauf trotzdem? Wir setzen WebLogic 8.1 ein.


----------



## Wildcard (1. Dez 2006)

Naja, egal wie, gezeichnet wird im EventDispatcher. Wenn du die Operation also mit invokeLater in die Dispatcher-Queue einreihst, sollte sie eigentlich erst ausgeführt werden wenn das rendering erledigt ist.
versucht macht klug, genau kann ich's dir nicht sagen.


----------

