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

Управляющие последовательности 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.

Источники

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

На главную BFOmetr →