- Расширенный текстовый формат
-
Rich Text Format (RTF, «формат обогащённого текста» (rich с английского — богатый) — свободный межплатформенный формат хранения размеченных текстовых документов, предложенный 1987 году, с тех пор спецификация формата несколько раз изменялась. RTF-документы поддерживаются большинством современных текстовых редакторов (под Microsoft Windows это, как правило, осуществляется с помощью стандартных библиотек, входящих в состав системы).
Содержание
Пример RTF-документа
В качестве примера, рассмотрим следующий код в формате RTF:
{\rtf1 Привет! \par {\i Это} некий отформатированный {\b текст}.\par End }
который будет выглядеть в текстовом редакторе с поддержкой RTF как
- Привет!
- Это некий отформатированный текст.
- End
Символ
\
указывает на начало управляющего кода. Код\par
означает переход к новой строке,\b
— переключение на полужирный шрифт. Фигурные скобки обозначают группу; например, в приведённом выше примере группой ограничивается действие кода\b
. Всё остальное, кроме фигурных скобок и управляющих кодов — это обычный текст. Правильный RTF-документ должен состоять из группы, начинающейся с управляющего кода\rtf
.Как видно из примера, основой формата является простой текст, то есть формат является человеко-читаемым. Но в большинстве случаев файлы RTF, генерируемые автоматически такими редакторами как MS Word содержат столько управляющих последовательностей, что разобраться в них простым чтением практически невозможно.
Интересно, что синтаксис формата RTF сильно напоминает формат
Кодирование символов
Текст в формате RTF кодируется 8-битными символами. Это ограничило бы нас набором символов escape-последовательностей. Символы могут кодироваться двумя способами: кодами в рамках указанной кодировки символов, либо кодами в Юникоде. Например, если задана кодировка \'e8 соответствует букве
и
. Если требуется символ в Юникоде, используется код\u
, сразу после которого указывается 16-битное число в десятичной системе счисления, а за ним — символ для представления в программах, не имеющих поддержки Юникода. Например, арабская буква «ب» представляется в виде последовательности\u1576?
, причем в не-юникодных программах на месте этого символа выведется «?».Использование
Большинство текстовых редакторов реализуют импорт/экспорт в формат RTF, благодаря чему этот формат часто используется как «общий», для передачи текста из одной программы в другую.
Редактор Microsoft Windows по умолчанию сохраняет документы в формате RTF. Текстовые редакторы OpenOffice.org позволяют просматривать и редактировать файлы в формате RTF. Редактор по умолчанию в Mac OS X — TextEdit, также поддерживает RTF.
Поскольку основу RTF составляет обычный текст, довольно просто создать RTF на любом языке программирования. Например, в PHP можно использовать библиотеку PhpRtf Lite для генерации в браузере RTF документов "на лету".
Ссылки
- Спецификация RTF 1.9 для Word 2007 (февраль 2007)
- Спецификация RTF 1.8 для Word 2003 (апрель 2004)
- Спецификация RTF, версия 1.6 (май 1999) в MSDN
- Спецификация RTF, версия 1.0 (июнь 1992) в проекте latex2rtf
- Привет!
Wikimedia Foundation. 2010.