RTF Merger - für ein individuelles Druckergebnis mit Format

Systemvoraussetzungen

E-Mail an uns

telefonischer Kontakt

über uns













RTF Merger



(Standard-Version)





Inhaltsverzeichnis



1 Allgemeines


2 Systemvoraussetzungen


3 Einführung


4 Starten des RTF Mergers


   4.1 Im Java-Programm


   4.2 In der Kommandozeile


5 Erlaubte Tags


   5.1 Variablen im allgemeinen


   5.2 Aliase


   5.3 Grafiken


   5.4 Tabellen


   5.5 Schleifen


   5.6 Direkte Adressierung


   5.7 Aufsteigende Adressierung


   5.8 if/else - Konstrukte


   5.9 Zeilenwechsel entfernen


   5.10 Mehrere RTF-Vorlagedateien zusammenführen


   5.11 Blockweise Daten aus XML


   5.12 Seitenwechsel einfügen


   5.13 Bekannter Bug von Word 97/2000


6 Support




1 Allgemeines

Seit Existenz der Programmiersprache Java®, gibt es keine triviale Lösung um Ihre Daten auf Papier zu bringen. Gerade wenn es sich um Formulare handelt, bei denen ein Grundgerüst immer gleich bleibt. Diese Formulare werden in der Regel einmal in die Anwendung programmiert und sind ab dann fester Bestandteil. Änderungen kann nur ein Programmierer durchführen!

Auch Techniken wie XSL, XSLT oder ähnliche können z. Zt. nur rein programmtechnisch abgebildet werden. Möchte ein Endanwender ohne Programmierkenntnisse eine Dokumentvorlage ändern, wird er scheitern. Es existieren bis dato keine Editoren, die das einfache Erstellen von XSL-Vorlagen erlauben.

Ist das für Sie eine zufriedenstellende Lösung? Mit Sicherheit nicht!

Nutzen Sie doch zur Gestaltung Ihrer Formulare einfach Ihre bestehende Textverarbeitung. Speichern Sie die Datei im RTF-Format ab, starten Sie unseren RTF Merger und Sie bekommen ein fertig ausgefülltes Dokument als RTF-Datei. Diese wiederum können Sie in Ihrer Textverarbeitung nachbearbeiten und/oder ausdrucken, in PDF konvertieren und per e-Mail versenden.


nach oben

2 Systemvoraussetzungen

Für die Nutzung als eigenständiges Programm:

· JDK oder JRE ab Version 1.2.2

· die Dateien rtfmerger.jar, xerces.jar, jdom.jar befinden sich im CLASSPATH

Für die Integration in Ihr bestehendes Java-Programm gibt es keine abweichenden Systemvoraussetzungen


nach oben


3 Einführung

Alle Ausdrucke basieren grundsätzlich auf zwei Dateien

· einer Vorlagendatei im RTF-Format und

· einer Datendatei im XML-Format.

Die RTF-Datei kann in Word97/2000 erstellt, bearbeitet und abgespeichert werden. Sollten Sie andere Textverarbeitungsprogramme nutzen, können wir nicht garantieren, dass der RTF Merger korrekt läuft. Sie enthält bestimmte Variablen, „Tags“ genannt, an deren Stelle im endgültigen Ausdruck, Werte aus dem Programm stehen sollen. , die in der XML-Datei zur Verfügung gestellt werden,.

Die XML-Datei wird von Ihrer Anwendung generiert. Sollten Sie in der vorhandenen Anwendungen noch nicht die Möglichkeit haben, Ihre Daten im XML-Format rauszuschreiben, so müssen Sie dies vor Verwendung des GhsRtfMerger realisieren. In der XML-Datei enthalten sind die Daten, die mit dem jeweiligen Ausdruck fachlich in Verbindung stehen. Teilweise kann es aus drucktechnischen Gründen nötig sein, Daten redundant im XML-File abzuspeichern.

Sind beide Dateien vorhanden, können Sie den GhsRtfMerger aufrufen, der die Mischung durchführt. Die u.g. Tags werden durch Werte aus dem XML-File ersetzt und es wird eine neue RTF-Datei generiert. Die ursprüngliche Vorlage bleibt unverändert. Wenn Sie die XML-Datei anschließend nicht mehr benötigen, sollten Sie deren Löschung in Ihrem Programm veranlassen. Der GhsRtfMerger löscht nichts!

Zusätzlich wird auf Wunsch ein (Fehler-)Protokollierung durchgeführt:

Durch Parameter beim Programmaufruf lässt sich steuern, welche Meldungen ausgegeben werden. Sie können direkt am Bildschirm ausgegeben oder in einer log - Datei geschrieben werden


nach oben


4 Starten des RTF Mergers


4.1 Im Java-Programm

siehe JavaDoc:

Online

www.rtfmerger.de/api/index.html


4.2 In der Kommandozeile:

Aufruf über

„java –cp rtfmerger.jar;xerces.jar;jdom.jar de.ghs.xml2rtf.GhsRtfMerger“ mit den Optionen:

Pflicht-Parameter

/rtf

Name der RTF Vorlage (mit Pfadangabe, falls nicht gleiches Verzeichnis wie JAR-Files)

/xml

Name der XML Datei (mit Pfadangabe, falls nicht gleiches Verzeichnis wie JAR-Files)

/d

Name der Ausgabedatei (mit Pfadangabe, falls nicht gleiches Verzeichnis wie JAR-Files)

Optionale Parameter

/prop

Name der Property-Datei, falls verwendet. Werden properties verwendet und es ist kein Dateiname angegeben, so wird davon ausgegangen, dass die Property Datei im gleichen Verzeichnis liegt wie die RTF Vorlage und der Dateiname in der Endung nach „.properties“ abgewandelt ist.


/lm: Logging Modus

Welche Protokollnachrichten sollen ausgegeben werden. Je nach Stufe (MODE_LIGHT, MODE_NORMAL, MODE_DEBUG) werden unterschiedlich viele Nachrichten generiert und ausgegeben.

Grundsätzlich ist es nicht nötig, das Logging einzuschalten.. Treten jedoch unerwartet Effekte beim Generieren auf, so kann man evtl. nachvollziehen, ob Fehler im RTF Dokument oder in der XML-Vorlage gemacht wurden.

/ld:Logging Ausgabe

Wohin sollen die Nachrichten gesendet werden

NULL = es werden keine Nachrichten ausgegeben

CONSOLE_LOG = die Nachrichten werden in der Konsole angezeigt

FILE_LOG = die Nachrichten werden in ein Logfile geschrieben.

/lf:Logfile

Wird beim Schalter „/ld“ der Modus FILE_LOG ausgewählt kann hier ein Logfile angegeben werden. Standardmäßig wird das Logfile ins Userverzeichnis, Unterverzeichnis TEMP gespeichert und hat den Namen „rtfmerger.log“.


nach oben


5 Erlaubte Tags


5.1 Variablen im allgemeinen

Jede Variable beginnt mit „$_“ und endet mit „&“. Der Name der Variable spiegelt die Hierarchie im XML-Baum wider. Beginnend bei der Wurzel werden die Elemente durch Punkte getrennt, bis man beim gewünschten Element angelangt ist.

Bsp.: $_Buch.ISBN&, $_Version&, $_Buch.Autor.Vorname&

5.2 Aliase

Aus designtechnischen Gründen kann es notwendig sein, sehr lange Tags abkürzen zu wollen. Deshalb können in jeder Vorlage sog. Aliase verwendet werden. Sie beginnen mit „$_A_“ und enden mit „&“. Die Zuordnung von Alias zu seinem richtigen Bezeichner bzw. Variablennamen geschieht in Property-Files. Sie tragen den gleichen Namen wie die zugehörige Vorlage, mit der Endung „properties“ anstatt „rtf“ und müssen im gleichen Verzeichnis liegen. In den Property-Files sehen die Zuordnung wie folgt aus:

Name=Variable;

Der „Name“ kann beliebige Zeichen enthalten, außer „;“ (Strichpunkt), „=“ (Gleichheitszeichen) und „\“ (Backslash). Sinnvoll ist eine Durchnummerierung der Aliase von 1 bis x. Die Variable entspricht dem Namen der Elements aus dem XML-File und muss mit einem Strichpunkt abschließen.

Bsp.: 1=Buch.ISBN; <=> $_A_1&;

Grundsätzlich können Aliase auch bei den folgenden Tags verwendet werden. Sollte dies einmal nicht funktionieren, wird beim entsprechenden Tag darauf hingewiesen

5.3 Grafiken

Grafiken, die dynamisch in das Dokument eingebunden werden sollen, beginnen mit „$_G_“ und enden mit „&“.

Bsp.: $_G_Buch.Cover&

Mit Alias: $_G_A_1&;

Es werden alle Grafikformate unterstützt, die auch Ihr Textverarbeitungssystem verarbeiten kann. Dazu zählen u.a. GIF, JPG ,TIF, BMP, PNG,....

5.4 Tabellen

Bei Tabellen muss man zwischen Tabellen mit und ohne Spaltenüberschrift unterscheiden. Die Tags innerhalb der Tabellen werden relativ zum Tabellen-Tag gesehen. Aliase funktionieren hier nicht.

Mit Spaltenüberschrift:

$_T_Buch&

Titel Autor ISBN

$_Titel& $_Autor.Name& $_ISBN&

Ohne Spaltenüberschrift:

$_T_L_Buch

$_Titel& $_Autor.Name& $_ISBN&

5.5 Schleifen

Schleifen kann man grundsätzlich über alle Bereiche eines RTF-Files laufen lassen. Sie beginnen mit $_L_Name& und enden mit $_E_Name&. Die Variablen die sich innerhalb der Schleife befinden, werden mit einem relativen Bezug zu $_L_Name& gesehen. Bei Aliasen darauf achten, dass sowohl Anfangs- als auch Ende-Tags ersetzt werden.

$_L_Name& bzw. mit Alias $_L_A_1&

Text über den die Schleife laufen soll.

Das kann auch eine Tabelle sein. Ist also beliebig!

$_E_Name& bzw. mit Alias $_E_A_1&

5.6 Direkte Adressierung

Möchte man innerhalb von Schleifen auf einen bestimmten Wert außerhalb Verweisen, so benutzt man den $_D_Name& -Tag.

5.7 Aufsteigende Adressierung

Bewegt man sich innerhalb von Schleifen, kann es nötig sein, eine bestimmte Anzahl von Stufen nach oben zu klettern und von diesen neuen Punkt als Bezugspunkt wieder nach unten zu gehen. Für diesen Zweck existiert der $_UP_x_Name& Tag. „x“ bezeichnet die Anzahl der nach oben zu steigenden Stufen.

nach oben

5.8 if/else - Konstrukte

Mit den Tags „$_BB_x_Name=y&“ und „$_EB_x& kann man „Wenn – Dann – Sonst“ Abfragen integrieren. „x“ ist ein eindeutiger Bezeichner der innerhalb eines BB-Blocks nur einmalig vorkommen darf. Zwischen Anfangs- und Endtag kann optional ein „AB“-Tag stehen der als „else“-Zweig benutzt werden kann.

Bsp.:

$_BB_1_Buch.Sonderpreis=J& (mit Alias $_BB_1_A_100=J&)

Diese Buch hat einen Sonderpreis!!

$_AB_1 &

Normaler Preis

$_EB_1&.

Gibt im Falle dass der Wert von Buch.Sonderpreis „J“ ist, ein „Diese Buch hat einen Sonderpreis!!“ aus, ansonsten „Normaler Preis“.

Hinweis: Es können keine „ist größer als“- oder „ist kleiner als“-Vergleiche durchgeführt werden.


5.9 Zeilenwechsel entfernen

Durch den Tag $_R& kann ein diesem Tag folgendes Return entfernt werden. Dies ist hilfreich, um bei Aufrufen, die mir einem Endetag versehen sind den Zeilenwechsel, das diesem Tag folgt, zu entfernen, so dass es nicht zu Leerzeilen kommt.

5.10 Mehrere RTF-Vorlagedateien zusammenführen

Es kann Anwendungsfälle geben, in denen es nötig ist, mehrere RTF Files zu einem zusammenzufügen. Hierfür existiert der $_AT –Tag.

Syntax:

$_AT_rtfdateiname;xmldateiname$. An dieser Stelle wird das Dokument „rtfdateiname“ eingefügt, welches vorher mit der XML-Datei „xmldatei“ generiert wurde.

5.11 Blockweise Daten aus XML

Anwendungsfall: Sie müssen mehrere RTF-Dateien zusammenführen, die Dateinamen sind aber variabel. Generiert man ein XML-File mit mehreren „RTFAUFRUF“-Tags, die als Wert die Dateinamen enthalten, so kann man mittels des „Block“-Tags alle RTF-Dokumente einfügen. (siehe 6.10)

Syntax:

$_Block_name&

Hier werden alle Werte aus dem XML-File die in dem Tag „name.RTFAUFRUF“ stehen eingefügt.

5.12 Seitenwechsel einfügen

Der TAG „$_NP&“ führt dazu, dass der RTF Merger einen Seitenwechsel einfügt. Wir dieser Tag innerhalb einer Schleife verwendet, so wird der letzten Seitenwechsel nicht mehr eingeüfgt, da ja ansonsten eine „Leerseite“ entstehen würde.

5.13 Bekannter Bug von Word 97/2000

Dokumente die nicht eingebettete Grafiken enthalten können nicht nachträglich mit Word bearbeitet werden und im RTF-Format abgespeichert werden. Wenn man sie bearbeiten UND speichern will, so muss das Speichern im Word-Format erfolgen. Dies ist ein bekannter Fehler von Word 97 und Word 2000.


nach oben


6 Support

Bei Fragen und Problemen wenden sie sich an

Michael Heckmann

GHS – Gruber & Hufnagel Softwareentwicklung GmbH

Am Bauernwald 3

76764 Rheinzabern

www.ghs-software.de

Tel.: 07272/9270-39

Fax 07272/9270-90

heckmann@ghs-software.de

RTF Merger - Demo (732 KB)

Dokumentation online lesen

Word-Dokument (257 KB)

Acrobat-Reader-Datei (105 KB)

GHS RTF Merger API

Nutzen

Arbeitsweise

Funktion  Downloads  Dokumentation  Fragen  Bestellung