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, что позволяет копировать форматированный текст между приложениями.
Источники
- Microsoft Corporation. Rich Text Format (RTF) Specification, Version 1.9.1. 2008.
- Microsoft Developer Network (MSDN). Rich Text Format (RTF) Reference.
- OpenOffice.org. RTF File Format Specification (документация для разработчиков).
- Ecma International. Standard ECMA-376: Office Open XML File Formats (сравнение с RTF).
- Статья «Rich Text Format» в английской Википедии (версия от 2023 года).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →