Generische Markierung mit RTF

Inhalt

RTF (Rich-Text-Format) wurde von Microsoft und Apple bereits in den 1980er-Jahren entwickelt, um einen einfachen Austausch formatierter Daten zwischen verschiedenen Programmtypen, wie beispielsweise Textverarbeitungsprogrammen,  Layoutprogrammen, Tabellenkalkulationsprogrammen und Datenbankprogrammen zu ermöglichen. Mehr zu den Grundlagen von RTF ist auf der Site von Formatting and more zu finden.

Basis von RTF ist eine Markierungssprache, die nur einfache (und daher leicht zu verstehende) Befehle enthält.

Wirkungsbereiche

Wie bei fast allen „generischen“ Markierungssprachen besteht das wichtigste Prinzip darin, Anfang und Ende des „Wirkungsbereichs“ eines Befehls zu kennzeichnen. So kann z.B. die Kursivformatierung mit dem Befehl \i eingeleitet und mit \plain beendet werden:

Dies ist eine \i Probe\plain

Dieser Text wird in konvertierter und damit formatierter Anzeige zu

Dies ist eine Probe

Am einfachsten ist es, Wirkungsbereiche mit geschweiften Klammern zu umgeben:

„{“ eröffnet einen Bereich, „}“ schließt ihn ab (die Anführungszeichen dürfen nicht mitgeschrieben werden).

Das vorstehende Beispiel ließe sich also auch schreiben als:

Dies ist eine {\i Probe}

Das Ergebnis der formatierten Anzeige wäre dasselbe.

Man sagt auch, eröffnende und schließende geschweifte Klammer definieren eine Gruppe.

Nach jedem Befehl muss ein Leerzeichen stehen; es kann dann Inhaltstext folgen oder ein weiterer Befehl.

RTF-Deklaration

Jede RTF-Datei muss durch einen Befehl eingeleitet werden, der deutlich macht, dass es sich um eine RTF-Datei handelt (dies ist die sog. RTF-Deklaration):
{\rtf1
Und jede RTF-Datei muss durch eine abschließende geschweifte Klammer beendet werden:
}

Eine sehr einfache RTF-Datei wäre also z.B.

{\rtf1
Dies ist eine {\i Probe}
}

Dieser Text kann in einem einfachen Text-Editor, z. B. dem in Windows enthaltenen Programm „Editor“ (unter „Zusatzprogramme“ zu finden), eingegeben und abgespeichert werden. Die abgespeicherte Datei erhält als Dateiendung automatisch .txt, also z.B. probe.txt. Man könnte nach dem Abspeichern die Endung in .rtf ändern, aber die Mühe der bewussten Auswahl des Formats muss man sich nicht machen, denn ruft man die txt-Datei mit Word auf, so erkennt das Programm wegen der RTF-Deklaration sofort, dass es sich um eine Datei mit RTF-Auszeichnung handelt. D. h. in Word wird sofort

Dies ist eine Probe

angezeigt.

Um mehr Kontrolle über das Öffnen von Dateien zu haben, empfiehlt es sich, in den Word-Optionen die Checkmarke bei „Dateiformatkonvertierung beim Öffnen bestätigen“ (Word 2007 bis 2016) bzw. „Konvertierung beim Öffnen bestätigen“ (Word 2003 und älter) zu setzen.

Dann erscheint beim Öffnen der Datei probe.txt die Meldung

konvertierung_bestaetigen

Bild 1: Meldung in Word beim Öffnen einer ASCII-Datei, die RTF-Befehle (insbesondere die RTF-Deklaration) enthält

Anhand dieser Meldung sieht man also direkt, dass Word die RTF-Codierung erkennt.

Würde in der gleichen txt-Datei der RTF-Eröffnungsbefehl fehlen, so erschiene das Fenster

konvertierung_bestaetigen_txt

Bild 2: Meldung in Word beim Öffnen einer ASCII-Datei, die reine Textdaten enthält

Wir wüssten damit, dass die zu öffnende Datei eine reine Text-Datei ohne Formatierung ist. Und das bleibt sie auch, wenn wir sie durch Drücken des OK-Buttons in Word öffnen. Die Codierungen sind zu sehen, weil sie nicht konvertiert werden:

Dies ist eine {\i Probe}
}

Fehlen von Klammern

Würde in der Datei dagegen nicht die RTF-Deklaration, sondern die abschließende geschweifte Klammer fehlen, so erschiene folgende Word-Meldung:

rtf_fehlermeldung

Bild 3: Meldung in Word beim Öffnen einer ASCII-Datei, die zwar RTF-Daten enthält, in der aber die abschließende geschweifte Klammer fehlt

D. h., selbst so winzige Dinge wie eine fehlende geschweifte Klammer haben einen großen Effekt.

Merksatz:

Beim Umgang mit Dateien, die generische Markierungen enthalten, kommt es auf jedes einzelne Zeichen an!
Doch nicht nur das Vorhandensein von Zeichen ist wichtig. Auch ihre Reihenfolge muss stimmen (z. B. Eröffnung und Ende).

Wichtige RTF-Befehle

Befehl Bedeutung
{ Eröffnung einer Gruppe
} Abschluss einer Gruppe
\rtf RTF-Eröffnungsbefehl
\ansi Befehl, der daraufhinweist, dass der
Ansi-Zeichensatz verwendet wird
{\fonttbl Befehl, der daraufhinweist, dass mit der im Hintergrund
liegenden „Zeichensatz-Tabelle“ gearbeitet werden soll.
Word (oder auch z. B. ein Layoutprogramm) kann dann auf
bestimmte Schriften zurückgreifen.
{\f0\froman Times New Roman;} Befehl für die Schrift Times New Roman
\i kursiv
\b fett
\sub tiefgestellt
\super hochgestellt
\plain Befehl zum Ausschalten einer Formatierung (wenn nicht
mit Gruppierung, also mit geschweiften Klammern,
gearbeitet wurde)
\par Befehl für die Absatzschaltung

Dateien mit „harten“ Formatierungen lassen sich mit diesen Befehlen sehr einfach direkt in einem ASCII-Editor schreiben. Werden sie mit Word oder einem anderen Programm, das RTF verarbeiten kann, geöffnet, so werden die Formatierungen sofort korrekt umgesetzt und angezeigt.

Genutzt werden kann das z. B. beim Publizieren aus Datenbanken.

Wichtig zu wissen:

XML funktioniert prinzipiell sehr ähnlich.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.