Java HTML inkl CSS und Javascript -> PDF

Tr3x

Lieutenant
Dabei seit
Feb. 2007
Beiträge
611
Hallo,

ich würde gern ein System für Reportings erstellen. Hier war meine Idee das User über einen WYSWIG Editor ein Template in HTML erstellen. Mit der Einbindung von CSS, kann dieses gestaltet werden. Damit die Daten dynamisch gefüllt werden, hätte ich das über Javascript erledigt.

Jetzt bin ich hierfür auf der Suche nach einem Framework. Jetzt kam ich schon über IText, jedoch würde ich sehr ein open source Framework bevorzugen (wer weiß was ich damit noch vor habe). Hier bin ich auf Apache PDF Box und ICEpdf gestoßen. Konnte hier jemand schon Erfahrung sammeln.

Bei vielen wird JavaScript nicht unterstützt, weshalb die dynamischen Daten so nicht eingespielt werden. Hat jemand mit den beiden Erfahrung oder ähnliches sammeln können?
 

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
26.149
Hi,

erkläre bitte nochmal genau, was du vorhast, du vermischt hier für mich zu viele Dinge. Apache PDF Box und ICEpdf sind Java Geschichten. Das hat erstmal keine Relevanz für irgendwelche HTML Templates oder CSS oder JavaScript.

Beschreibe mal Schritt für Schritt, was du vorhast, wie der Workflow sein soll. So wie ich es verstehe sollen irgendwelche Dokumente / Reports erstellt werden, die ein Nutzer vorher in HTML / CSS / JS layouten und erstellen kann. Für mich kommt erst danach serverseitig eine PDF Erstellung, vollkommen egal welche Library oder Sprache dafür dann verwendet wird.

Woher kommen denn die Daten, die dynamisch nachgeladen werden sollen?

VG,
Mad
 

Tr3x

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2007
Beiträge
611
Hi,

das Backend basiert voll und ganz auf Java und soll auch eine Datenbank haben. Das Backend soll aus Templates und den Daten aus der Datenbank PDF Dokumente generieren.

Das Template besteht hier jedoch aus HTML/CSS/JS. Hier soll der User das Template gestalten wie er will und enthält statische Texte sowie dynamische "Platzhalter".

Auf Abruf soll das Backend das Template verwenden und führt die "Platzhalter"/Javascripte aus. Die Javascript nehmen die Daten aus der Datenbank und wandeln diese entsprechend in das HTML ein. Zum Beispiel Ausgabe aller Kunden Namen in einer Schleife. Am Ende sollte ein fertiges HTML Dokument vorliegen das nur noch vom Backend in PDF umgewandelt werden. So der Plan und auch hoffentlich Deine Vermutung.

Die Frage für mich ist nur ob es überhaupt möglich ist HTML/CSS/JS mit Java in ein ordentliches PDF Dokument zu wandeln und welche guten Frameworks dabei helfen würden.

VG
 

wiztm

Lieutenant
Dabei seit
Mai 2006
Beiträge
823
JavaScript ausführen geht über die Nashorn Engine.
Was CSS angeht so könnte JavaFx helfen.

HTML inkl. CSS und JavaScript Serverseitig generieren lassen .. da müsste spontan passen.
 

beig1

Cadet 4th Year
Dabei seit
Feb. 2009
Beiträge
114
schau dir mal wkhtmltopdf an, damit kannst du deine HTML seite direkt als pdf generieren.
 

Tr3x

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2007
Beiträge
611
Hi,

wkhtmltopdf hab ich sogar mal gestest. Leider wird hier kein JavaScript ausgeführt und fällt daher flach.
Nashron und JavaFx klingt nicht verkehrt. Aber wie wäre den da der Ansatz. Zuerst HTML und dann JavaScript das hier eingebunden wird ausführen? Aber wie erkennt Nashorn die Scripte überhaupt?
 

Ozzy83

Lt. Junior Grade
Dabei seit
März 2016
Beiträge
332
Ich verstehe nicht wieso du etwas im Frontend zusammenbasteln willst, was dann aber vom Backend als PDF umgewandelt wird ? Wenn du all die Daten eh im Frontend hast, wieso nicht dort PDF generieren und auf den Server laden ?

Wenn du Daten vom Backend ins Frontend abrufst, wird es wohl sowas wie REST-Schnittstellen geben ? Die können auch den Weg anders herum, brauchst nur ein REST Endpunkt mit HTTP POST Methode. Frameworks die solchen REST Kram machen sind z.B. JaxRS.

Damit könntest dann einfach im Frontend eine URL aufrufen bzw. ein Formular erstellen welches die tut und somit die Daten an den Java-REST-Endpunkt schicken. Dort wird das HTML als String empfangen und über irgendeine PDF library verarbeitet.
 
Zuletzt bearbeitet:

Tr3x

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2007
Beiträge
611
Über das Fronted sollten die User den HTML CSS und JavaScript code hinterlegen, erweitern. Das Backend stellt die Daten und die "Engine" zur Verfügung.
 
Top