Rich Text Format
Dateiformat für formatierte Texte
From Wikipedia, the free encyclopedia
Das Rich Text Format (RTF) ist ein proprietäres Dateiformat für formatierte Texte. Es wurde Ende der 1980er Jahre von Microsoft für den Austausch von Texten u. a. zwischen Textverarbeitungsprogrammen oder in E-Mails mit dem Ziel entworfen, dabei die Formatierung zu erhalten. In WordPad und TextEdit ist es das Standardformat.
| Rich Text Format | |
|---|---|
| Dateiendung: | .rtf |
| MIME-Type: | text/rtf, application/rtf[1] |
| Magische Zahl: | {\rtf |
| Entwickelt von: | Microsoft |
| Erstveröffentlichung: | 1987 |
| Aktuelle Version | 1.9.1 (19. März 2008) |
| Art: | Dokumentenformat |
Viele Textverarbeitungsprogramme unterstützen RTF als Import- und Export-Format.
Merkmale
Ein RTF-Dokument enthält zusätzlich zum reinen Text Formatierungsmerkmale wie zum Beispiel Schriftgrößen, -arten oder -auszeichnungen, bis hin zu eingebetteten Grafiken. Layouttreue ist nicht gewährleistet, es kann beispielsweise zu veränderten Seitenumbrüchen auf dem Zielsystem kommen.
Schriftarten werden in der Regel nicht eingebettet und müssen daher für eine originalgetreue Wiedergabe auf dem Zielsystem installiert sein.
Eine RTF-Datei enthält nur einfache Textzeichen des Zeichensatzes des jeweiligen Systems, entweder ASCII, ANSI oder auch Macintosh Roman.[2] Dadurch sind die meisten englischen Schriftzeichen auch in einem einfachen Texteditor darstellbar, da ein RTF-Dokument technisch gesehen eine einfache Textdatei ist. Andere Schriftsysteme sind aber völlig unlesbar, da jedes erweiterte, nicht in ASCII enthaltene Zeichen als Control Word kodiert wird. Darüber hinaus können in RTF-Dateien auch Binärdaten eingebettet sein, wie z. B. ein Bild. Das Format ist damit keine Auszeichnungssprache im eigentlich Sinn, auch wenn es manchmal als solche bezeichnet wird.[3]
Paketdateien
Von NeXT wurde die Erweiterung Rich Text Format Directory, abgekürzt RTFD, entwickelt, die es erlaubt, Mediendateien ähnlich den Application Bundles einzubetten.[4] Dabei wird eine RTF-Datei in einem Unterverzeichnis (einem Paket bzw. englisch Package) gemeinsam mit den im Textdokument eingebetteten Dateien, etwa Bilddateien, abgelegt. RTF und RTFD wird u. a. von TextEdit als Standardformat genutzt.[5][6]
Aufbau
Das folgende Beispiel zeigt, wie eine minimalistische RTF-Datei intern aufgebaut ist. Eine echte Datei mit demselben Text, erzeugt mit LibreOffice Writer, enthält hingegen 2470 Byte und ist damit etwa 23× so groß.
Der RTF-Dateiinhalt:
{\rtf1
Sch\u246\'f6nen Tag!
\line
{\i Dies} ist \b{\i ein
\i0 formatierter \b0Text}.
\par
\b Das \b0Ende.
}
Die Darstellung:
Schönen Tag!
Dies ist ein formatierter Text.
Das Ende.
Absätze werden also durch \par getrennt, Leerzeilen mit \line eingefügt, innerhalb von {\i <Text>} stehender Text kursiv und innerhalb {\b <Text>} stehender Text fett angezeigt usw. Weitere Texteigenschaften werden analog markiert, und zu Beginn einer RTF-Datei kann außerdem eine Liste aller verwendeten Schriftarten gespeichert sein.
Die proprietäre RTFD-Erweiterung, die von NeXTStep stammt, unterstützt eingebettete Mediendateien wie Grafiken nur unter Verwendung einer Paketdatei. Diese ist eigentlich ein Unterverzeichnis, in dem eine RTF-Datei TXT.rtf enthalten ist, sowie zusätzlich alle darin eingebetteten Mediendateien.
Im Textdokument im Rich Text Format sind die Mediendateien per NeXT-/Apple-spezifischem Markup-Code eingebettet, z. B. als {{NeXTGraphic Bild01.jpg width1280 height1280}} für die Bilddatei Bild01.jpg.[7]
Als Paketdatei mit der Endung .rtfd wird das gesamte Verzeichnis vom Betriebssystem (NeXTSTEP bzw. OPENSTEP sowie später Mac OS X bzw. OS X bzw. macOS) wie ein einziges RTFD-Dokument behandelt, das heißt, der Benutzer erkennt normalerweise nicht, dass es sich um ein Verzeichnis handelt. Im Finder wird eine Paketdatei (Package) wie eine einzelne Datei angezeigt und auch so behandelt. Mit dem Kontextmenüpunkt „Paketinhalt zeigen“ (englisch ‚Show Package Contents‘) kann der Inhalt des Verzeichnisses allerdings eingesehen werden.
Verbreitung
Das Rich Text Format ist eine der Möglichkeiten, formatierte Texte ohne größeren Aufwand zwischen Anwendungen verschiedener Systeme auszutauschen,[8] da es auf vielen Plattformen bzw. Betriebssystemen seit Ende der 1980er Jahre Programme gibt, die das Format verarbeiten können. Auf Altsystemen ist RTF oft sogar die einzige Möglichkeit zum Austausch formatierter Texte, da diese keine moderneren Formate lesen können bzw. aktuelle Systeme die proprietären Formate von damals längst nicht mehr unterstützen. Auf der anderen Seite gibt es inzwischen teilweise Programme, die RTF nicht nur als veraltet betrachten, sondern bei denen sogar der RTF-Filter, der in früherer Versionen bisher enthalten war, wieder entfernt wurde.[9][10]
Programme
Microsoft führte RTF 1987 als Export-Format in Word 3.0 für DOS ein. Neben Microsoft Office unterstützen viele Textverarbeitungsprogramme und Office-Pakete das Rich Text Format als Import- und Export-Dateiformat.
Outlook Classic und Exchange Server unterstützen das Rich Text Format in E-Mails, allerdings wird RTF in der neueren Outlook-Version, Outlook New ab 2024, nicht mehr unterstützt. Microsoft empfiehlt stattdessen die Verwendung von HTML.[11][12]
Unter Windows können RTF-Dateien mit WordPad geöffnet werden, das zur Standardinstallation von Windows 95 bis Windows 10 gehört.[13] In Windows 11 24H2 wurde WordPad allerdings entfernt.[14]
Auch Apples TextEdit, der Standard-Editor von macOS, verwendet RTF bzw. RTFD als Standardformat.
Programmierung
Die Programmierschnittstellen von Windows und macOS bieten Funktionen zur Darstellung von formatierten Texten und Nutzen dafür das Rich Text Format. So ist RichTextBox Control ein Teil der Windows-API.[15] Unter macOS steht das Framework Apple TextEngine, das Funktionen für mit RTF formatierten Text bietet, für Programme zur Verfügung.
Probleme
Die ab Version 1.0 von 1987 definierten RTF-Versionen sind begrenzt aufwärtskompatibel. Alle Schriftzeichen außerhalb des ASCII-Bereichs werden beim Betrachten in älteren Versionen durch ein Ersatzzeichen (meist ?) ersetzt. Erst ab Windows Vista ist vollständige Unicode-Unterstützung (\uN) gewährleistet.
Viele Textverarbeitungssysteme können RTF-Dateien zwar lesen und schreiben, unterstützen meist aber nicht alle im Rich Text Format verfügbaren Funktionen.[16] Anwendungen ignorieren alle ihnen unbekannten Control Words – nicht unterstützte Formatierungen werden somit einfach nicht dargestellt, wodurch aber der Inhalt in den meisten Fällen erkennbar bleibt (nur eben ohne die Formatierung).[17][18][19] Je nach Editor kommt es eventuell beim Speichern zum Verlust der nicht unterstützten Formatierungen. Allerdings ist dadurch nicht nur das Aussehen jeweils unterschiedlich, auch ganze Metadaten wie Autor oder Anmerkungen, Fußnoten und Tabellen[20] können heimlich verschwinden.
NeXTSTEP- und macOS-Programme, die die API-Funktionen des Betriebssystems verwenden, beherrschen keine direkt im RTF-Dokument eingebundenen Grafiken und auch keine Fußnoten. Stattdessen wird eine einzelne RTF-Datei, sobald Grafiken oder andere Mediendateien in das Dokument eingefügt wurden, automatisch zu einem RTFD-Paket umgewandelt. Dies betrifft auch den Standardeditor TextEdit.
Sicherheitslücken
Obwohl RTF keine eigene Makrosprache besitzt und entgegen früherer Behauptungen RTF sei vor Viren sicher,[21][22] ist RTF für eine Vielzahl von Angriffen anfällig. Dazu gehören beispielsweise Template-Injection-Angriffe[23] unter Verwendung des Control Word *\template oder OLE-Exploits.[24]
Microsoft Word öffnet auch andere Formate, die in einen Dateinamen mit der Endung .rtf umbenannt wurden, und führt darin enthaltene Makros wie gewohnt aus. Damit lässt sich indirekt die Sicherheit von Word umgehen, das beim Öffnen einer RTF-Datei .
Ältere Versionen von WordPad waren beim Öffnen von RTF-Dateien anfällig für Remote Code Execution, was zuletzt 2017 behoben wurden.[25] Es gibt allerdings auch neuere Sicherheitslücken.[26] Da die Weiterentwicklung von WordPad durch Microsoft eingestellt wurde, hat das Unternehmen das Programm 2024 mit dem jährlichen Upgrade aus Windows 11 entfernt.
Weblinks
- Spezifikationen, Version 1.6 (Mai 1999, englisch)
- Spezifikationen, Version 1.8/Word 2003 (April 2004, englisch)
- Spezifikationen, Version 1.9.1/Word 2007 (Februar 2007, englisch)
- UnRTF (englisch) Open-Source-Programm zur Konvertierung von RTF in HTML, LaTeX, PostScript und andere Formate. Das Programm muss vor der Benutzung kompiliert werden.