JavaFX formatierter Text in PDF speichern

Ingerten

Bekanntes Mitglied
Hallo alle zusammen,

hab da mal ne Frage, gibt es denn eine Möglichkeit, ein Text zu formatieren(Schriftart, Schriftgrösse, usw...), ihn dann in ein PDF zu speichern und danach den text, mit der Formatierung aus der PDF-Datei, wieder laden kann und in einem Node wieder editieren kann?

Ich habe es mit dem HTMLEditor von JavaFX versucht und mit der ein oder anderen PDF-Bibliothek versucht, aber ich bekomme es nicht hin, das er die Formatierung übernimmt.

Ich befasse mich das erste mal mit der Formatierung von einem Text, gibt es da eigentlich auch noch was anderes zum formatieren von texten oder muss man da auf den HTMLEditor zurückgreifen?

Ich hoffe ihr könnt mir ein paar anregungen geben und schonmal ein Danke im voraus.
 
Ich verstehe nicht was das bedeuten soll:
Ich habe es mit dem HTMLEditor von JavaFX versucht und mit der ein oder anderen PDF-Bibliothek versucht, aber ich bekomme es nicht hin, das er die Formatierung übernimmt.
Du hast also aus dem Inhalt, den du in der Anwendung geschrieben hast, ein PDF erstellen können, aber wenn du es zurück in die Anwendung holst, geht es nicht?
Für PDFs kenne ich eigentlich im Wesentlichen nur iText und Bibliotheken wie Jasper Reports, BIRT etc., die das untendrunter verwenden, um PDFs zu erstellen.
Kenne sonst nur zwei Wege: Screenshots (in JavaFX recht einfach auf Node-Ebene machbar) erstellen und irgendwie (externe Tools? iText?) in PDF-Form bringen, oder aber Word-Dateien (.docx, gezippte XMLs) manipulieren und sein lassen (haben wir mal für ne App so gemacht).
Sonst aber muss ich sagen: Keine Ahnung!
 
Danke erstmal für deine Antwort,

das mit der Word-Datei und XML hört sich ganz interessant an. Wie bekomme ich das denn hin, das ich im Java-Programm den Text formatieren kann, ihn dann mit Hilfe von XML in die Word-Datei schreibe und mir dann irgendwann, den Text mit der Formatierung wieder im Java-Programm anzeigen lasse und weiter bearbeiten kann?

Da gibt es bestimmt eine Bibliothek oder sowas für solche sachen.

Bitte entschuldige das ich so dumm fragen muss, aber bei dem Thema habe ich überhaupt keine Ahnung.
 
Nun ja, das Problem ist folgender Teil (der mir immer noch etwas unklar bei dir ist):
den Text mit der Formatierung wieder im Java-Programm anzeigen lasse und weiter bearbeiten kann
Das ist in der Form und Out-of-the-Box nicht möglich. Vielleicht geht das mit Windows-APIs in C#, aber in Java(FX) gib es von Haus aus weder solche APIs noch UI-Elemente, die das anzeigen können.
Es gibt ein paar PDF-Viewer, aber viel editieren können die nicht (und wenn, dann sind sie nicht kostenlos).
Für das Verarbeiten von diversen Formaten gibt es das Apache-Projekt
Apache POI - the Java API for Microsoft Documents
Sollte für die alten proprietären Office-Formate, aber speziell auch für die aktuellen Office OpenXML-Formate funktionieren. Für Open Document must du mal etwas suchen.

Wir haben seinerzeit nur etwas für Template benötigt und selbst gebaut. Der Ablauf war dabei wie folgt:
1) wir generieren einfache JSONs, die die Daten des Dokuments enthalten
2) wir erstellen ein Word-Dokument, dass im Text Platzhalter für eindeutige Werte hat (flache Struktur, also im Root des JSON) -> %bla% -> { "bla":"blub" } -> Im finalen Dokument soll dann dort statt "%bla%" eben "blub" stehen.
3) Dann muss das XML selbst aus dem .docx extrahiert werden (z.B. document.xml)
4) Platzhalter überprüfen, manchmal ist Office der Meinung, sie auf mehrere XML-Tags zu verteilen.
5) spezielle Platzhalter einfügen, die man für Loops verwenden kann (ich habe hier XML-Kommentare eingefügt, die den Wurzelknoten eines Arrays abbilden - Start und Ende). Die darzustellenden Daten dann relativ vom Array aus.

Am Ende etwas Code, um das alles zu verarbeiten. Im ganzen etwa 300-400 Zeilen Code.

Aber wie gesagt: Das ist nur die erstellende Richtung, keine darstellende. Das kann ich nicht.

Andere Idee: Es gibt diverse JavaFX-basierte Projekte, um Asciidoc oder Markdown zu editieren und betrachten. Vielleicht kann dir das als Einstiegspunkt dienen (auch wenn diese Editoren wohl eher kein volles WYSIWYG unterstützen werden). Dort in den Projekten kann man sich ja mal umschauen, was man damit alles machen kann.
 
Besten Dank erstmal für deine Hilfe.

Andere Idee: Es gibt diverse JavaFX-basierte Projekte, um Asciidoc oder Markdown zu editieren und betrachten. Vielleicht kann dir das als Einstiegspunkt dienen (auch wenn diese Editoren wohl eher kein volles WYSIWYG unterstützen werden). Dort in den Projekten kann man sich ja mal umschauen, was man damit alles machen kann.

Das werde ich mir mal anschauen und auch Punkt 2 ist keine schlechte Idee, das muss ich mir mal durch den Kopf gehen lassen, ob ich das damit umsetzen kann, was ich vor habe.

Danke nochmal für die Hilfe
 

Zurück
Oben