Rich Text Format

Rich Text Format
Расширение .rtf[3]
MIME-тип text/rtf[1]
application/rtf[2]
Сигнатура {\rtf
Разработчик Майкрософт[4]
Последний выпуск
Тип формата document file format
Открытый формат? Нет

Rich Text Format, RTF (англ. rich — богатый; «формат обогащённого текста») — проприетарный[5][6] межплатформенный формат хранения текстовых документов с форматированием, предложенный группами программистов, основавшими компании Microsoft и Adobe, как мета-теговый формат для редактора Word в 1982 году. С тех пор спецификация формата несколько раз изменялась. После разрыва отношений с Microsoft компания Adobe продолжила самостоятельное развитие метатэгового языка, заложенного в основу RTF, создав в 1985 году язык PostScript.


Пример RTF-документа[ | ]

В качестве примера рассмотрим следующий в формате RTF:

{\rtf1
 Привет!
 \par
 {\i Это} некий
 отформатированный {\b текст}.\par
}

который будет выглядеть в текстовом процессоре с поддержкой RTF как

Привет!
Это некий отформатированный текст.

Символ \ указывает на начало управляющего а. \par означает переход к новой строке, \b — переключение на полужирный шрифт. Фигурные скобки обозначают группу; например, в приведённом выше примере группой ограничивается действие а \b. Всё остальное, кроме фигурных скобок и управляющих ов — это обычный текст. Правильный RTF-документ должен состоять из группы, начинающейся с управляющего а \rtf.

Как видно из примера, основой формата является простой текст, то есть формат является человеко-читаемым. Но в большинстве случаев файлы RTF, генерируемые автоматически такими процессорами как MS Word, содержат столько управляющих последовательностей, что разобраться в них простым чтением практически невозможно.

Интересно, что синтаксис формата RTF сильно напоминает формат LaTeX, но в отличие от последнего, управляющие последовательности являются не макросами, доступными для изменения, а командами с фиксированным поведением.

ирование символов[ | ]

Хотя стандарт допускает 8-битное ирование в отдельных случаях[7], текст в формате RTF обычно ируется 7-битными символами. Это ограничило бы нас набором символов ASCII, но остальные символы можно ировать с помощью escape-последовательностей. Символы могут ироваться двумя способами: ами в рамках указанной ировки символов, либо ами в Юние. Например, если задана ировка Windows-1251, то \'e8 соответствует букве и. Если требуется символ в Юние, используется \u, сразу после которого указывается 16-битное число со знаком в десятичной системе счисления (значения, большие 32767, представляются как отрицательные), а за ним — символ для представления в программах, не имеющих поддержки Юниа. Например, арабская буква «ب» представляется в виде последовательности \u1576?, причём в не-юниных программах на месте этого символа выведется «?».

Использование[ | ]

Большинство текстовых процессоров реализуют импорт/экспорт в формат RTF[источник не указан 2430 дней].

Текстовый редактор WordPad, встроенный в Microsoft Windows, по умолчанию сохраняет документы в формате RTF. Текстовые процессоры AbiWord и OpenOffice.org позволяют просматривать и редактировать файлы в формате RTF. Редактор по умолчанию в Mac OS X — TextEdit, также поддерживает RTF.

Поскольку основу RTF составляет обычный текст, довольно просто создать RTF на любом языке программирования. Например, в Perl для этих целей есть модуль RTF::Writer. В PHP можно использовать библиотеку PhpRtf Lite для генерации в браузере RTF документов «на лету».

См. также[ | ]

Ссылки[ | ]

Примечания[ | ]

  1. Text Media Types. iana.org (8 июня 1993). Дата обращения 13 марта 2010. Архивировано 2 июня 2012 года.
  2. Application Media Types. iana.org (18 июня 2007). Дата обращения 20 августа 2010. Архивировано 2 июня 2012 года.
  3. http://fileformats.archiveteam.org/wiki/RTF
  4. http://apps.nationalarchives.gov.uk/pronom/fmt/45
  5. tutorial: Rich Text Format (RTF). Colorado State University. Дата обращения 13 марта 2010. Архивировано 2 июня 2012 года.
  6. 4.3 Non-HTML file formats (недоступная ссылка). e-Government Unit (май 2002). Дата обращения 13 марта 2010. Архивировано 2 июня 2012 года.
  7. Например \binN