# Drucken von RTF-Dokumenten?



## tuxedo (9. Aug 2006)

Hallo,
ich weiß das Thema drucken gabs schon zig mal. Aber ich habe im Forum nichts darüber gefunden wie man RTF-Dokumente druckt. PNG/Jpeg und reiner Text... Kein Problem. Aber bei RTF scheints schwieriger zu sein.

Hat das schonmal jemand gemacht? Mit dem DocFlavor komm ich nicht weiter da ich da keinen passendne Stream-Typ für RTF finde. RTF hat zwar ASCII Code in sich, wird dann aber irgendwie interpretiert vorm drucken. Weil im ASCII-Code können ja auch Bilder und so stecken.

Der Grund warum ich unbedingt RTF drucken möchte:

Ich möchte eine Art Serienbrief-Funktion in meine Java-Programm einbauen. Da RTF ein Textformat ist kann ich da einfach eine String-Ersetzungsmethode drüber laufen lassen und z.B. {anrede} mit meiner gewünschten Anrede zu ersetzen. Die Briefe kann ich vorher "komfortabel" mit Word erstellen und auch mit Grafiken, Tabellen etc. versehen... 


Was ich nciht möchte ist einen eigenen Editor schreiben. Das Dokument muss in Word zu erstellen sein, mit Java müssen sich vorher definierte Platzhalter gegen Textstücke austauschen lassen und das ganze muss aus Java heraus druckbar sein. Am besten auf nen Drucker der von Windows definiert wird. Also wahlweise mein Laserdrucker oder mein Arobar PDF Creator ...


Weiß jemand weiter? Wie druckt man RTF ohne sich dabei ein Bein zu brechen? Oder gibts bessere Formate wie RTF die mein Vorhaben genauso unterstützen, jedoch besser druckbar sind mit Java ?

Gruß
Alex


----------



## tuxedo (21. Aug 2006)

Also ich hab immer noch nichts gefunden.
Gibts vielleicht mittlerwele jemanden der da mehr weiß ??

- Alex


----------



## AlArenal (21. Aug 2006)

Drucken ist ne ziemlich  ätzende Angelegenheit in Java. Sollte Kommerzware für dich eine Option sein, schau dir mal das Java Printing Framework an: http://www.softframeworks.com/

Mir hats viel Nerven und Zeit gespart und der E-Mail-Support ist erste  Sahne. Schon während der Evaluierung (ich hatte also noch nicht gekauft), hat man mir fertige Beispiele geschrieben und geschickt, die den Druck andere 3rd Party Komponenten in meinen Anwendungen demonstrierten.


----------



## tuxedo (21. Aug 2006)

Sieht nicht schlecht aus.

Wie stehts hiermit:
http://de.wikipedia.org/wiki/Opendocument
"Eine OpenDocument-Datei ist eine Sammlung verschiedener XML-Dateien und anderer Objekte (z. B. eingebundene Bilder), die zu einem Java-Archiv (JAR bzw. ZIP) zusammengefasst werden, um Speicherplatz einzusparen. Durch das XML-Format können selbst mit einem einfachen Texteditor Veränderungen am Dokument durchgeführt werden, nachdem die Datei entpackt wurde."

Als Template-System wäre as vom Aufbau her zu gebrauchen. Wäre relativ neu und IMHO ne innovative variante zu RTF.
OpenOffice benutzt das Format ja auch. Für MS Word gibts scheins ein Plugin um ebenfalls in diesem Format zu speichern.
Müsste sich nur noch drucken lassen.

Mal schauen.

-Alex

[update]
lade mir gerade das OpenOffice SDK runter. Wenn man damit drucken kann wär das optimal.


----------



## foobar (21. Aug 2006)

> ade mir gerade das OpenOffice SDK runter. Wenn man damit drucken kann wär das optimal.


Kann man, aber nur wenn du eine laufen Instanz von OOO hast. Ansonsten viel Spaß mit Uno ;-)


----------



## tuxedo (22. Aug 2006)

Ja, das ist nicht gut. Habs eben selbst gemerkt :-(

So langsam aber sicher wirds doof. 
Das von Softframeworks gefällt mir irgenwie nicht. Hab eben die Demo angesehen.

Hab irgendwo gelesen dass es möglich sei RTF erst in PS zu wandeln und dann zu drucken.. Das würde gehen.
hat da jemand Infos zu ?

- Alex


----------



## foobar (22. Aug 2006)

Probier doch mal über XSLT ein File im OpendocumentFormat nach PDF oder ps ui konvertieren, das kannst du dann direkt an den Drucker schicken.


----------



## tuxedo (5. Sep 2006)

@foobar: Öhm, kann es sein dass das in etwa so aufwendig ist wie eine RTF-Druck-Lb selbst schreiben ?!

Gibts nicht ne "fertige" lib mit der man rtf nach ps konvertieren kann ?
OpenDocument war ja nur so ne Idee. Im übrigen gibts jetzt ein Team das sich um Opendocument in zusammenhang mit Java kümmert:

http://odf4j.sf.net

gruß
Alex


----------



## tuxedo (18. Sep 2006)

Falls es jemanden noch interessiert:

http://www.artofsolving.com/jooconverter



> By leveraging OpenOffice.org, it supports the following conversions
> 
> * from Word / RTF / OpenDocument Text to PDF / Word / RTF / OpenDocument Text
> * from Excel / OpenDocument Spreadsheet to PDF / Excel / OpenDocument Spreadsheet
> ...



Also geht RTF nach PDF.. Und das kann man in Java drucken ...

Habs noch nich getestet. Werd ich aber jetzt glech mal tun.

- Alex


----------



## foobar (18. Sep 2006)

Dann mußt aber OOO auf dem Zielsystem installiert sein. Ausserdem mußt du dann ca. 25 Jars mit ausliefern nur um ein paar RTF's auszudrucken. Das kanns doch nicht sein oder?


----------



## thE_29 (18. Sep 2006)

Wie kann man pdfs in java drucken?!


----------



## tuxedo (18. Sep 2006)

@foobar
Jupp, habs gesehen...
Aber die Libs haben alle "nette" lizenzen so dass man seinen Code nciht zwangsweise zu GPL machen muss. Sind alle BSD-Style oder LGPL. 

Habs eben mal getestet. Mit nur 8 Zeilen (ich hätt noch sparen können) hab ich ein ODT Template befüllt und in PDF konvertiert. Und das lässt sich mit der Java ohne weitere extra Lib drucken. 
hab im übrigennur 13 Libs benötigt...

Muss nur gerade wieder schauen wie ....

Dass OO auf dem System sein muss hab ich auch gesehen. Und jetzt kommt das ABER....
Ich brauch das ganze für ne Client-Server Anwendung. Und OO lässt sich übers Netzwerk als Service bedienen. D.h. ich muss es nur einmal aufm Server installieren. 

Für mich passts also. 

ich hab jetzt insgesamt mehrere Wochen gesucht, geforscht und getestet. Aber das hier scheint die beste Lösung zu sein wenn man ein Dokumenten-Template-System sucht. Rechnungen, Serienbriefe... all das ist jetzt sehr einfach ...

gruß
Alex

P.S. OO läuft nicht im vordergrund... sondern im hintergrund als Service. Also auch kein Symbol links neben der Uhr in der Taskleiste in Windows...


----------

