Rich Text Format
This article needs additional citations for verification. (November 2007) |
Filename extension |
.rtf |
---|---|
Internet media type |
text/rtf |
Type code | 'RTF ' |
Uniform Type Identifier (UTI) | public.rtf |
Magic number | {\rtf |
Developed by | Microsoft |
Type of format | document file format |
The Rich Text Format (often abbreviated to RTF) is a proprietary document file format developed by Microsoft in 1987 for cross-platform document interchange. Most word processors are able to read and write RTF documents.
It should not be confused with enriched text (mimetype "text/enriched" of RFC 1896) or its predecessor Rich Text (mimetype "text/richtext" of RFC 1341 and 1521) which are completely different specifications.
paintshop hahaha :-P :-P :-P
Sample RTF document
As an example, the following RTF code:
- {\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard This is some {\b bold} text.\par }
would be rendered like this when read by an appropriate word processor:
This is some bold text.
A backslash (\
) starts an RTF control code. The \par
control code indicates the end of a paragraph, and \b
switches to a bold typeface. Brackets ({
and }
) define a group; the example uses a group to limit the scope of the \b
control code. Everything else will be treated as clear text, or the text to be formatted. A valid RTF document is a group starting with the \rtf
control code.
Character encoding
RTF is an 8-bit format. That would limit it to ASCII, but RTF can encode characters beyond ASCII by escape sequences. The character escapes are of two types: code page escapes and Unicode escapes. In a code page escape, two hexadecimal digits following an apostrophe are used for denoting a character taken from a Windows code page. For example, if control codes specifying Windows-1256 are present, the sequence \'c8
will encode the Arabic letter beh (ب).
If a Unicode escape is required, the control word \u
is used, followed by a 16-bit signed decimal integer giving the Unicode codepoint number. For the benefit of programs without Unicode support, this must be followed by the nearest representation of this character in the specified code page. For example, \u1576?
would give the Arabic letter beh, specifying that older programs which do not have Unicode support should render it as a question mark instead.
The control word \uc0
can be used to indicate that subsequent Unicode escape sequences within the current group do not specify a substitution character.
hi warren :-P
Human readability
Unlike most word processing formats, good RTF code can be made human-readable. That is to say that when an RTF file is opened in a text editor, the text is legible and the markup is not too distracting or counter-intuitive. The RTF files produced by most programs, such as MS Word, will contain such a large number of control codes for compatibility with older programs that most files will easily be an order of magnitude larger than the raw text and very difficult to read. Formats such as MS Word's .doc
are, in contrast, binary formats with only a few scraps of legible text.
Nowadays, human-readable XML-based formats are becoming more common, but RTF's readability was a rare thing when it came out. Note that the XML-based OpenDocument and Office Open XML formats are often not immediately human-readable due to its being a bundle of several different files within a ZIP archive.
Common implementations
Most word processing software implementations support RTF format import and export, often making it a "common" format between otherwise incompatible word processing software.
The WordPad editor in Microsoft Windows creates RTF files by default. It once defaulted to the Microsoft Word 6.0 file format, but write support for Word documents was dropped in a security update.
The free and open-source word processors AbiWord, OpenOffice.org, and KWord can view and edit RTF files.
The default editor for Mac OS X, TextEdit, can also view and edit RTF files.
Since RTF files are text files, it is easy to produce RTF with many programming languages, like PL/SQL, Ruby, Perl, Java, C++, Pascal and Delphi, COBOL, or Lisp.
See also
- Rich Text Format Directory rtfd file type
- Enriched text format
- List of document markup languages
- Comparison of document markup languages
- Revisable-Form Text (RFT), part of IBM's Document Content Architecture (DCA)
- TNEF Transport Neutral Encapsulation Format, the Outlook default message format
- RichTextBox, a .NET component that can be used to create rich text
External links
- RTF 1.9 specification (January 2007) (from Microsoft)
- RTF 1.8 specification (April 2004) (from Microsoft)
- RTF 1.7 specification (August 2001) (from Microsoft)
- RTF 1.6 specification (May 1999) (from Microsoft)
- RTF 1.5 specification (April 1997) (from biblioscape.com)
- RTF 1.0, 1.2, 1.3, 1.5 and 1.7 specifications (from the RTF Tools open source project)
- RTF 1.0 specification (June 1992) (from the latex2rtf open source project)
- UnRTF - open-source program to convert RTF into HTML, LaTeX, PostScript, and other formats
- Ruby RTF project for creating Rich Text content via Ruby
- PhpRtf project for creating Rtf documents with PHP.
- The homepage for the book RTF Pocket Guide