Открыть сервис

Rich Text Format

Rich Text Format (RTF) — это формат файлов для хранения текстовых документов, разработанный корпорацией Microsoft в 1987 году. Он предназначен для обмена текстовой информацией между различными текстовыми процессорами и операционными системами, сохраняя при этом базовое форматирование: шрифты, начертания, цвета, выравнивание, таблицы и встроенные изображения. RTF является промежуточным форматом между обычным текстом (TXT) и полностью форматированными документами (например, DOCX или ODT), обеспечивая переносимость при минимальной потере оформления.

История

Разработка RTF началась в середине 1980-х годов в рамках проекта Microsoft по созданию универсального формата для обмена документами между Word для MS-DOS, Word для Macintosh и другими приложениями. Первая спецификация была опубликована в 1987 году вместе с Microsoft Word 3.0 для Macintosh. Основной целью было преодоление несовместимости форматов разных текстовых редакторов, что было особенно актуально в эпоху отсутствия единого стандарта.

В 1992 году Microsoft выпустила спецификацию RTF 1.3, которая добавила поддержку внедрённых объектов (OLE) и таблиц. Версия 1.5 (1997 год) ввела поддержку Unicode, что позволило корректно отображать символы нелатинских алфавитов, включая кириллицу. Последняя официальная версия — RTF 1.9.1 (2008 год) — была выпущена вместе с Microsoft Office 2007. После этого Microsoft фактически прекратила развитие формата, сосредоточившись на Open XML (DOCX). Однако RTF остаётся широко поддерживаемым форматом благодаря своей простоте и открытости.

Структура файла

Файл RTF представляет собой текстовый файл в кодировке ASCII (или ANSI/Unicode), содержащий управляющие последовательности (команды) и собственно текст. Формат использует обратную косую черту (\) для обозначения команд и фигурные скобки ({}) для группировки.

Основные элементы

  • Управляющие слова — начинаются с \ и состоят из букв латинского алфавита. Например, \b включает полужирное начертание, \i — курсив, \par — конец абзаца.
  • Управляющие символы — одиночные символы после \, например, \{ для отображения фигурной скобки.
  • Группы — блоки, заключённые в {}, задающие область действия команд. Например, {\b жирный текст}.
  • Заголовок — первая группа файла, начинающаяся с {\rtf1, где 1 — номер версии спецификации. В заголовке указываются кодировка (\ansi, \mac, \pc), размер шрифта по умолчанию (\deff0), цветовая палитра ({\colortbl;...}) и другие глобальные настройки.

Пример простого RTF-файла

`` {\rtf1\ansi\deff0 {\fonttbl {\f0 Times New Roman;}} {\colortbl ;\red255\green0\blue0;} \pard\f0\fs24\b\cf1 Привет, мир!\cf0\b0\par } ``

Этот код создаёт документ с текстом «Привет, мир!», написанным полужирным красным шрифтом Times New Roman размером 12 пунктов (24 половины пункта).

Возможности форматирования

RTF поддерживает широкий набор функций форматирования, хотя и не такой полный, как у современных форматов вроде DOCX.

Текст и абзацы

  • Шрифты: название, размер (в половинах пункта), начертание (полужирный, курсив, подчёркнутый, зачёркнутый), цвет текста и фона, межсимвольный интервал.
  • Абзацы: выравнивание (влево, вправо, по центру, по ширине), отступы (слева, справа, первой строки), межстрочный интервал, табуляция, обрамление и заливка.
  • Списки: нумерованные и маркированные списки с поддержкой многоуровневой вложенности.

Таблицы

Таблицы задаются с помощью команд \trowd (начало строки), \cellx (ширина ячейки), \cell (конец ячейки) и \row (конец строки). Поддерживаются объединение ячеек, границы, заливка, выравнивание текста внутри ячеек.

Изображения

Изображения внедряются в файл в виде шестнадцатеричного дампа (hex-кода) после команды {\pict. Поддерживаются форматы: Windows Metafile (WMF), Device Independent Bitmap (DIB), JPEG, PNG, GIF. Размер изображения задаётся в пикселях или твипах (1/1440 дюйма).

Сноски, колонтитулы, гиперссылки

RTF позволяет создавать сноски (\footnote), колонтитулы (\header, \footer), гиперссылки ({\field{\*\fldinst HYPERLINK "http://example.com"}}`), а также закладки и перекрёстные ссылки.

Поддержка в операционных системах и приложениях

Благодаря открытости спецификации, RTF поддерживается практически всеми текстовыми процессорами и многими другими программами.

  • Microsoft Word — эталонная реализация, поддерживает все версии RTF.
  • LibreOffice Writer и OpenOffice Writer — имеют встроенную поддержку чтения и записи RTF, хотя могут возникать расхождения в отображении сложных элементов (таблиц, изображений).
  • Apple Pages и TextEdit — поддерживают RTF, причём TextEdit использует его как основной формат для документов с форматированием.
  • Google Docs — может импортировать и экспортировать RTF, но с ограничениями (например, некоторые шрифты заменяются).
  • Многие текстовые редакторы (Notepad++, Sublime Text, Vim) могут открывать RTF как обычный текст, отображая управляющие команды.

Преимущества и недостатки

Преимущества

  • Переносимость: RTF-файлы можно открыть на любой платформе (Windows, macOS, Linux) без специального ПО.
  • Простота: формат основан на тексте, что упрощает его ручное редактирование и автоматическую обработку.
  • Малый размер: по сравнению с DOCX, RTF-файлы обычно меньше, особенно при отсутствии изображений.
  • Совместимость: поддерживается даже старыми версиями текстовых процессоров (например, Word 97).

Недостатки

  • Ограниченные возможности: RTF не поддерживает сложные элементы, такие как стили, темы, макросы, рецензирование, смарт-теги, математические формулы (в стандартной спецификации).
  • Неэффективность: при работе с большими объёмами форматирования (например, сложные таблицы) файлы могут стать громоздкими и трудночитаемыми.
  • Проблемы с кодировкой: в старых версиях RTF (до 1.5) не было поддержки Unicode, что приводило к искажению символов кириллицы и других нелатинских алфавитов.
  • Отсутствие развития: после 2008 года Microsoft не выпускала новых версий, и формат постепенно вытесняется более современными Open XML и ODF.

Применение

RTF часто используется в следующих сценариях:

  • Обмен документами между разными текстовыми процессорами, когда необходимо сохранить базовое форматирование.
  • Создание шаблонов для автоматической генерации документов (например, в системах документооборота).
  • Хранение справки и документации в старых программах (например, в Windows Help).
  • Экспорт из веб-приложений (например, из почтовых клиентов или CMS) в виде вложений.
  • Архивирование текстов с форматированием, когда важна долговременная читаемость.

Интересные факты

  • RTF-файлы можно открыть в любом текстовом редакторе, и они будут выглядеть как набор команд, что позволяет «вручную» исправлять ошибки форматирования.
  • Некоторые вредоносные программы используют RTF-файлы для распространения, встраивая в них эксплойты через OLE-объекты или макросы (хотя последние не поддерживаются напрямую).
  • Формат RTF лёг в основу формата Rich Text (RTF) в буфере обмена Windows, что позволяет копировать форматированный текст между приложениями.

Источники

  1. Microsoft Corporation. Rich Text Format (RTF) Specification, Version 1.9.1. 2008.
  2. Microsoft Developer Network (MSDN). Rich Text Format (RTF) Reference.
  3. OpenOffice.org. RTF File Format Specification (документация для разработчиков).
  4. Ecma International. Standard ECMA-376: Office Open XML File Formats (сравнение с RTF).
  5. Статья «Rich Text Format» в английской Википедии (версия от 2023 года).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →