RichText

Offener Standard für Formatierten Text

Das Rich Text Format (RTF) ist ein Standard zur Codierung von formatiertem Text. Die meisten Text-Programme unterstützen RTF. Allerdings ist RTF durch HTML weitgehend überholt worden.
Standards Chancen ohne Monopole
Formatierter Text Codierung, Standards, ...
Binär-Codierung Noch immer oft verwendet, aber meist sehr nachteilig
Klartext-Codierung Die Methode der Zukunft: RTF, HTML, XML, OpenDocument, ...
Quick & Dirty Einige RTF-Regeln zum Experimentieren
Links Ausgewählte Links zum Thema 'RichText'

Codierung von formatiertem Text

Das Rich Text Format (RTF) wurde als Standard-Format für die Codierung von formatiertem Text entwickelt.
Damit sollte es möglich werden (und ist es heute noch), formatierten Text zwischen verschiedenen Programmen auf allen gängigen Betriebssystemen auszutauschen.
Der historische Anlass: Verschiedene Software-Hersteller entwickelten für die Text-Codierung eine Unzahl unterschiedlicher Verfahren. Keines davon unterscheidet sich wesentlich in seinen Fähigkeiten. Allerdings machten es die unterschiedlichen Verfahren notwendig, alle Programme mit Filtern für die Umwandlung der Codier-Formate auszurüsten.
Reiner Text (Klartext):
Wenn es nur darum geht, "reinen" Text (text/plain) zu codieren, dann genügen dazu die 95 Standard-Zeichen des → ASCII-Code. Dieser Code bietet darüber hinaus Steuerzeichen (Tabulator, Neue Zeile, .. ), insgesamt 128 Zeichen.

Wer die Zeichen aller Sprachen codieren möchte, verwendet → Unicode. (z.B. für die de-Sonderzeichen ÄÖÜäöüß). Dieser Standard lässt sich nach dem → UTF8-Verfahren so codieren, dass man für durchschnittliche mitteleuropäische Texte nur wenig mehr als 1 Byte pro Zeichen braucht.

Diese beiden Standards werden von allen heute gängigen Betriebssystemen und Programmen unterstützt. Allerdings ist damit keinerlei Formatierung möglich.

Derartige Text-Dateien werden - einer Windows-Konvention folgend - meist mit *.txt benannt.
Dateien, die nur Klartext enthalten, sind garantiert frei von Viren !
(Das gilt auch für alle nachfolgend erwähnten Standards, die nur Klartext verwenden).
Formatierung:
Bereits die ersten Programme zur Textverarbeitung erlaubten einfache Formatierung: fett, kursiv, unterstrichen, usw.
Im Laufe der Zeit wurden immer mehr Elemente für Formatierung und Layout (What you see is what you get - WYSIWYG) in Text-Programme aufgenommen.

Jedes Element der Formatierung muss zusätzlich zum Text gespeichert werden Alle Hersteller von Text-Programmen entwickelten dafür eigene Codier-Verfahren, das 'Rad' wurde sozusagen ständig neu erfunden, und zwar ohne wesentlichen technischen Fortschritt.

Binäre Codierung von formatiertem Text

Binäre Codierung:
Die meisten älteren Textverarbeitungs-Programme verwenden diese Art der Codierung.
Die Daten der Formatierung werden binär verschlüsselt. Daher sind die Dateien solcher Textprogramme nicht mehr als 'Reiner Text' lesbar.
Binäre Codierung bringt nur für den Hersteller Vorteile. Durch ständig wechselnde Codierung versuchen große Hersteller ihre Kunden zum Kauf neuer Programmversionen zu nötigen.
Nachteile für AnwenderInnen:
Binärcode ist nicht standardisiert und mit einfachen Werkzeugen nicht kontrollierbar.
Die Dateien können nur mit Programmen eines Herstellers, oft sogar nur mit bestimmten Versionen korrekt gelesen werden. In jedem anderen Fall müssen sie umständlich übersetzt werden.
Daher ist sowohl die Weitergabe als auch die Archivierung problematisch.
Binär codierte Dateien müssen umständlich 'übersetzt' werden, um daraus Webseiten zu machen.
Die automatische Verarbeitung solcher Dokumente ist zwar nicht unmöglich, aber schwierig und viel zu aufwändig.

PDF

('Acrobat') vom Hersteller Adobe verwendet ebenfalls binär codierte Dokumente, die neben Text auch Grafik und andere Elemente enthalten können.
Hier wird die 'Unlesbarkeit' binär codierter Daten allerdings zum Vorteil verwendet: PDF-Dokumente können zwar (auf allen gängigen Betriebssystemen !) gelesen, jedoch nicht geändert werden.
Das eignet sich gut für die Archivierung und für die Weitergabe von Dokumenten, die nur zum Lesen bestimmt sind.
Das Lesen von PDF-Dokumenten ist kostenlos. Sie können das Programm Adobe PDF Reader kostenlos aus dem Internet laden. und z.B. in jeden Browser integrieren.
Zur Herstellung von PDF-Dokumenten benötigen sie zusammen mit MS-Office eigene kommerzielle Software von Adobe.
Die kostenfreien Programm-Pakete LibreOffice und OpenOffice bieten PDF-Herstellung zum Nulltarif. Dabei wird eine freie PDF-Bibliothek verwendet, die auch für gängige Programmiersprachen (Perl, PHP, .. ) verfügbar ist.

Klartext Codierung von formatiertem Text

RichText (RTF) verwendet Auszeichnungs-Elemente in Klartext, z.B. für ein {\b fettgedrucktes} Wort.
Dieser Standard wurde von Microsoft entwickelt, jedoch nie international definiert. Daher sind zahlreiche Varianten und Dialekte in Gebrauch.
RTF wird von vielen Mail-Programmen (MS-Outlook) verwendet.
RTF kann von allen gängigen Textprogrammen gelesen und geschrieben werden. Auch einige Bibliotheken für Programmiersprachen bieten Parser (Lese-Programme) für RTF an.
RTF ist 'weitgehend' Viren-sicher: Bei einigen MS-Word-Versionen konnten allerdings über Verweise von RTF-Dokumenten auf auf externe Vorlagen darin enthaltene Viren aktiviert werden. (MS-Link)

HTML

Dieser Offene Standard für Webseiten verwendet Auszeichnungs-Elemente (tags) in Klartext zur Codierung, z.B.für ein <b>fettgedrucktes</b> Wort.

Diese klassischen Format-tags wurden mittlerweile durch CSS ersetzt, eine eigene 'Sprache' für Layout und Formatierung, die nicht nur für Webseiten, sondern für alle Mitglieder der → XML-Familie eingesetzt werden kann.

XML

Dieser wichtige IT-Standard umfasst eine ganze Familie von 'Auszeichnungs-Sprachen' als wesentliche und konsequente Weiter-Entwicklung von HTML.
XML verwendet zur Codierung ausschließlich Klartext, vorzugsweise mit dem Zeichensatz → UTF-8.
XML kann fast jede Art von Daten darstellen, darunter auch Text, Grafik oder Webseiten.
Unter den XML-Mitgliedern befinden sich einige spezialisierte 'Programmiersprachen', z.B. → XHTML für Webseiten oder → SVG für Grafik.
XSL ist eine eigene 'Programmiersprache' zur Formatierung jeder Art von Daten. XSL ist XML-Mitglied und daher mit allen anderen Mitgliedern dieser Familie kombinierbar.
XSL kann z.B. dazu verwendet werden, um aus Text (z.B. aus einer Datenbank) wahlweise ein druckbares Text-Dokument herzustellen (z.B. LibreOffice oder PDF), eine Webseite, ein WML-Dokument (Mobiltelefon) oder eine beliebige andere standardisierte Datei.
Prinzipiell müsste es möglich sein, mit Hilfe von XSL auch RTF-Dateien zu erzeugen, allerdings scheint es daf%ür keinen Bedarf zu geben.
Sowohl mit CSS als auch XSL ist eine saubere Trennung von Inhalt und Layout möglich.

LibreOffice und Openoffice

sind professionelle Pakete von Standard Büro-Programmen.
LibreOffice ist ein OpenSource-Projekt und daher kostenfrei im Internet erhältlich. Es enthält alle Standard-Programme typischer Office-Pakete (Text, Kalkulation, Präsentation, ObjektGrafik,..) und läuft problemlos auf allen (!) gängigen Betriebssystemen.

LibreOffice verwendet zur Codierung Klartext nach XML-Standards.
Zusätzlich enthält das Programm u.a. Filter für den Import und Export von binär-codierten Dateien des derzeitigen Marktführers und kann daher dessen Office-Paket problemlos ersetzen.
LibreOffice oder OpenOffice ist in allen gängigen Linux-Distributionen enthalten.

OpenDocument

OpenOffice verdient u.a. deshalb besondere Beachtung, weil es sämtlche Dokumente (Text, Kalkulation, ..) nach → XML-Standard in Klartext (OpenDocument-Format) codiert.

Jedes LibreOffice-'Dokument' besteht intern aus einer ganzen Gruppe von XML-Dokumenten, in welchen Daten und Layout / Formatierung sauber getrennt sind. Allerdings sind alle Dateien einer Gruppe gemeinsam in ein (ZIP)-Archiv verpackt.

Rechts wird beschrieben, wie sie die Klartext-XML-Daten einer OpenDocument-Datei manuell ansehen und ändern können.

Die gleichen Arbeiten kann auch ein Programm ausführen, und zwar in wenigen Sekunden für tausende von Dokumenten. Das ist einer der großen Vorteile von XML:
Programme zur automatischen Verarbeitung von XML-Daten lassen sich mit jeder modernen Programmiersprache rasch und kostengünstig erstellen und auf jedem Betriebssystem ausführen, z.B. mit Java, Perl, PHP, ..

Sie können ein beliebiges LibreOffice-Dokument im Detail studieren:
Kopieren sie das Dokument und ändern sie den Dateinamen der Kopie von *.odt auf *.zip.
Packen sie dieses Archiv mit einem beliebigen Archiv-Programm aus (WinAce, WinRAR, WinZip, ..): Sie erhalten die ganze Datei-Gruppe.
Sie können jede Datei der Gruppe mit einem beliebigen Editor (auf Windows z.B. mit Notepad++) öffnen und ansehen. Der Text wird leichter lesbar, wenn sie Zeilen-Umbrüche einfügen, vorzugsweise zwischen aufeinander folgenden >< Zeichen: Das verletzt keine XML-Regeln.
Sie können die Daten ändern und speichern. Kleine Änderungen am Inhalt sind der einfachste Test, z.B. am Ende der Datei content.xml
So sieht z.B. Text in einem OpenDocument aus:
<text:p text:style-name="Standard">Das ist Text </text:p>
Sie können die Dateigruppe wieder zu einem Archiv komprimieren und den Namen auf *.odt ändern: Das geänderte Dokument sollte sich wieder mit LibreOffice öffnen und bearbeiten lassen.
Einige weitere Formate für formatierten Text, die als Standards oder de-facto-Standards eingesetzt werden:

LaTeX (TeX) ist ein Offener Standard in Klartext, eignet sich besonders für (technische) Publikationen hoher Qualität und großen Umfangs. LaTeX unterstützt die saubere Trennung von Inhalt und Layout.
PostScript von Adobe verwendet Klartext und eignet sich besonders zur genau reproduzierbaren Ausgabe auf PrintMedien, vor allem für den anspruchsvollen und professionellen Bereich.
PostScript wird nicht durch menschliche "ProgrammiererInnen" sondern fast ausschließlich durch Layout-Programme erstellt.
Apple (Betriebssystem, Software, Drucker) ist traditionell stark auf Postscript eingestellt. Für Linux und Win-Systeme ist das kostenlose Postscript-Paket GhostScript populär.

RTF -Quick & Dirty

Hier einige RTF-Regeln zum Experimentieren:
(natürlich ohne Gewähr !)
Öffnen sie ein RTF-Dokument und versuchen sie, die Codierung zu analysieren. Mit etwas Geschick können sie einfache RTF-Dokumente nach diesem Muster erstellen.
Entscheidung bei jedem einzelnen Zeichen c:
(1) Wenn c='{' oder c='}' -> überspringen
(2) Wenn c='\' -> nachfolgende Zeichen cn analysieren:
(2a) Wenn cn='{' oder cn='}' oder cn='\' -> c entfernen und cn anzeigen.
(2b) In jedem anderen Fall dient die nachfolgende Information der Formatierung -> c & cn weglassen bis zum nächsten Leerzeichencn=' '
(3) In jedem anderen Fall: c anzeigen.

Ausgewählte Links zum Thema RichText

Biblioscape - RTF Specification (en)
Microsoft: RTF Specification 1.7 (1.6)
CPAN - RTF CookBook
RTF-Parser, Libraries, etc.:
Java: Sun (swing), iText, Sourceforge-Projekte iTextdotNET, AurigaDoc, Jfor (XML/XSL),
Perl: CPAN RTF-Parser, rtfeeder,
PHP: RTFgen (verschiedene Quellen im Web)
VBA: FreeVBcode HTML->RTF Parser,
C++: Die M$-Definition von RTF enthält einen Muster-Reader
Konverter:
LaTeX: Sourceforge project rtf2latex2e und latrex2rtf,
rtf2xml von Sean M. Burke
rtfeeder (rtf2html)
Snake.net: RTF Tools & Doku

XHTML CSS