Управляющие последовательности Rich Text Format¶
Rich Text Format (RTF) — это кроссплатформенный формат хранения размеченных текстовых документов, разработанный компанией Microsoft в 1987 году. Формат использует текстовое кодирование управляющих последовательностей, что позволяет передавать документы между различными текстовыми редакторами и операционными системами. Основным элементом синтаксиса RTF является управляющее слово, которое начинается с обратной косой черты \, за которым следует буквенное обозначение команды и, при необходимости, параметр.
¶Структура RTF-документа
RTF-файл представляет собой последовательность ASCII-символов, которая включает в себя управляющие слова, управляющие символы и группы. Группы заключены в фигурные скобки { } и могут быть вложенными. Документ RTF всегда начинается с группы {\rtf, за которой следует версия формата, например {\rtf1. Далее объявляется используемая кодовая таблица символов, например \ansi для кодовой страницы Windows-1252.
Управляющие слова в RTF чувствительны к регистру и могут принимать целочисленные параметры. Если параметр отрицательный, перед числом ставится знак минуса. Пробел, завершающий управляющее слово, не является частью команды и игнорируется парсером. Управляющие символы состоят из обратной косой черты и одного небуквенного символа, например \~ для неразрывного пробела или \{ для вывода фигурной скобки.
¶Таблица шрифтов и объявление fonttbl
Одной из первых групп в теле RTF-документа является таблица шрифтов, которая объявляется управляющим словом \fonttbl. Эта группа определяет список шрифтов, используемых в документе, и присваивает каждому из них числовой идентификатор. Синтаксис группы выглядит следующим образом: {\fonttbl {\f0 Шрифт;}{\f1 ДругойШрифт;}}.
Каждый элемент таблицы начинается с управляющего слова \f, за которым следует номер шрифта, затем идут необязательные параметры, описывающие характеристики шрифта, и заканчивается элемент названием шрифта и точкой с запятой. Параметры шрифта включают:
\fnil— семейство шрифтов не определено (используется по умолчанию);\fmodern— моноширинный шрифт (например, Courier New);\fswiss— рубленый шрифт с засечками (например, Arial, Helvetica);\froman— шрифт с засечками (например, Times New Roman);\fscript— рукописный шрифт;\fdecor— декоративный шрифт;\ftech— технический шрифт (например, Symbol).
¶Разбор последовательности fonttbl f0 fnil fcharset0 helveticaneueinterface
Последовательность \fonttbl\f0\fnil\fcharset0 helveticaneueinterface является фрагментом реального RTF-документа и описывает первый шрифт в таблице. Разбор элементов:
\fonttbl— начало объявления таблицы шрифтов;\f0— присвоение шрифту номера 0;\fnil— указание, что семейство шрифта не определено или не имеет значения;\fcharset0— указание набора символов (charset) с номером 0, что соответствует кодировке Windows-1252 (ANSI);helveticaneueinterface— имя шрифта, которое будет отображаться в текстовом редакторе.
Параметр \fcharset определяет набор символов, используемый шрифтом. Значение 0 соответствует западноевропейской кодировке ANSI. Другие распространённые значения: 204 — кириллица (Windows-1251), 1 — набор символов по умолчанию, 2 — символы Symbol. Имя шрифта helveticaneueinterface указывает на гарнитуру Helvetica Neue Interface, которая является вариантом шрифта Helvetica Neue, оптимизированным для отображения в пользовательских интерфейсах операционных систем.
¶Применение RTF и управляющих последовательностей
Формат RTF широко использовался в 1990-х и 2000-х годах для обмена документами между текстовыми процессорами, такими как Microsoft Word и WordPerfect, а также между различными операционными системами, включая Windows и macOS. Встроенный редактор WordPad в Windows по умолчанию сохраняет файлы в формате RTF. В настоящее время формат продолжает применяться для создания документов с базовым форматированием, хотя был в значительной степени вытеснен форматами ODF и DOCX.
Управляющие последовательности RTF позволяют задавать:
- форматирование символов (жирный, курсив, подчёркивание);
- форматирование абзацев (выравнивание, отступы, межстрочный интервал);
- параметры страницы (поля, размер, ориентация);
- вставку специальных символов, рисунков и таблиц;
- использование цветов и заливок.
¶Особенности парсинга и совместимости
При разборе RTF-документов текстовые редакторы игнорируют неизвестные управляющие слова, что обеспечивает обратную совместимость: документ, созданный в более новой версии программы, может быть открыт в более старой версии с потерей части форматирования, но без потери текста. Управляющие слова, начинающиеся с \, помечают группы, содержимое которых должно игнорироваться программами, не поддерживающими данное расширение. Например, группа {\\generator Microsoft Word 15;} содержит информацию о создателе документа и не влияет на его отображение.
Пробелы в RTF-документе имеют особое значение: одиночный пробел завершает управляющее слово, а два пробела подряд означают один литеральный пробел в тексте. Символы, не входящие в кодовую таблицу, кодируются с помощью управляющей последовательности \uN, где N — десятичное значение символа в кодировке Unicode. Для обратной совместимости после \uN указывается альтернативное представление символа в текущей кодовой таблице.
¶Пример минимального RTF-документа
Минимальный RTF-документ, содержащий слово «Пример», выглядит следующим образом:
`` {\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 helveticaneueinterface;}} \f0\fs24 Пример} ``
В данном примере объявляется таблица шрифтов с одним шрифтом Helvetica Neue Interface, устанавливается размер шрифта 24 половинных пункта (12 пунктов) и выводится текст. Для корректного отображения кириллицы в параметрах документа должна быть указана соответствующая кодовая страница, например \fcharset204.
¶Источники
- Спецификация формата Rich Text Format (RTF) версии 1.9, Microsoft Corporation.
- Документация Microsoft Learn по основам синтаксиса RTF.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →
