.RTF вариант №
Представленный и задокументированный Microsoft формат Rich Text Format (RTF) представляет собой метод кодирования форматированного текста и графики для использования в приложениях. Этот формат облегчает межплатформенный обмен документами с другими продуктами Microsoft, что служит цели функциональной совместимости. Эта возможность делает его стандартом передачи данных между программным обеспечением для обработки текстов, и, следовательно, содержимое может быть передано из одной операционной системы в другую без потери форматирования документа. Спецификации формата файлов доступны Microsoft для общего доступа скачать, и на них можно ссылаться с точки зрения разработчика.
Краткая история формата файла RTF
Формат файла RTF претерпел несколько изменений с момента его публикации. Его официальная версия для чтения/записи была опубликована как часть Microsoft Word 3.0 для Macintosh со спецификациями версии 1.0. Окончательная версия спецификаций, 1.9.1, была опубликована Microsoft в марте 2008 г. После этого в спецификации больше не вносились усовершенствования. В настоящее время почти все операционные системы имеют более многофункциональные приложения, в которых сведено к минимуму/искоренено использование формата файла RTF.
Спецификации формата файла RTF
RTF служит стандартом передачи данных между программным обеспечением для обработки текстов и передачи контента из одной операционной системы в другую. Это достигается с помощью контрольных слов, которые были введены в Microsoft Office Word до 2007 года. Стандартный файл RTF состоит из ASCII для представления форматированного текста и символов, отличных от ASCII, которые преобразуются в соответствующие кодовые значения. Более новые версии Word могут читать RTF-файлы, созданные в предыдущих версиях, тогда как более старые версии игнорируют управляющие слова и группы, которые они не понимают.
Понимание основ RTF
Файлы RTF используют 7-битный простой текст ASCII, состоящий из:
- контрольные слова
- управляющие символы и
- группы.
Они действуют как строительные блоки для представления данных RTF в виде понятного текста и кодировки символов.
Контрольное слово
Они представляют собой специально отформатированные команды, используемые для обозначения символов для отображения, и не могут быть длиннее 32 букв. Управляющее слово определяется:
<ASCII Letter Sequence> //<//Delimiter//> //
Каждое управляющее слово чувствительно к регистру и начинается с обратной косой черты. Последовательность букв ASCII может содержать алфавиты ASCII (от a до z и от A до Z). отмечает конец имени управляющего слова и может быть одним из следующих:
- Пространство. Это служит только для ограничения управляющего слова и игнорируется при последующей обработке.
- Числовая цифра или знак минус ASCII, указывающий на то, что числовой параметр связан с управляющим словом. Затем последующая цифровая последовательность ограничивается любым символом, кроме цифры ASCII (обычно это другое управляющее слово, начинающееся с обратной косой черты). Параметр может быть положительным или отрицательным десятичным числом. Диапазон значений числа номинально составляет от –32768 до 32767, т. е. 16-разрядное целое число со знаком. Небольшое количество управляющих слов принимает значения в диапазоне от -2 147 483 648 до 2 147 483 647 (32-битное целое число со знаком). Эти управляющие слова включают \binN, \revdttmN//, \rsidN связанные управляющие слова и некоторые свойства изображения, такие как \bliptagN. Здесь N обозначает числовой параметр. Синтаксический анализатор RTF должен допускать до 10 цифр, которым может предшествовать знак минус. Если разделителем является пробел, он отбрасывается, то есть не включается в последующую обработку.
- Любой символ, кроме буквы или цифры. В этом случае символ-разделитель завершает контрольное слово и не является его частью. Например, обратная косая черта «\», означающая, что следует новое управляющее слово или управляющий символ.
Символ управления
Символ управления представляет собой особое событие, которое имеет определенное значение в зависимости от его содержимого. Он состоит из обратной косой черты, за которой следует специальный символ (небуквенный символ), и не имеет разделителей.
Группа
Группа может состоять из текста, управляющих слов или управляющих символов, заключенных в фигурные скобки ({ }). Открывающая фигурная скобка ({) указывает на начало группы, а закрывающая фигурная скобка (}) указывает на конец группы. Каждая группа определяет текст, на который влияет группа, и различные атрибуты этого текста.
Структура файла RTF
Файл RTF имеет следующий стандартный синтаксис:
Представленный и задокументированный Microsoft формат Rich Text Format (RTF) представляет собой метод кодирования форматированного текста и графики для использования в приложениях. Этот формат облегчает межплатформенный обмен документами с другими продуктами Microsoft, что служит цели функциональной совместимости. Эта возможность делает его стандартом передачи данных между программным обеспечением для обработки текстов, и, следовательно, содержимое может быть передано из одной операционной системы в другую без потери форматирования документа. Спецификации формата файлов доступны Microsoft для общего доступа скачать, и на них можно ссылаться с точки зрения разработчика.
Заголовок RTF
Заголовок RTF имеет следующее представление.
Поле | Описание |
---|---|
<header> | \rtf1\fbidis? <character set> <from> ? <deffont> <deflang> <fonttbl> ? <filetbl> ? <colortbl> ? <stylesheet> ? <stylerestrictions> ? <listtables> ? <revtbl> ? <rsidtable> ? <mathprops> ? <generator> ? |
Таблицы заголовков должны отображаться в этом порядке, если они существуют. Файл RTF может включать группы для шрифтов, стилей, цвета экрана, изображений, сносок, комментариев (аннотаций), верхних и нижних колонтитулов, сводной информации, полей, закладок, свойств форматирования документа, раздела, абзаца и символа, математики, изображения, предметы. Если шрифт, файл, стиль, цвет, метка редакции, группы сводной информации и свойства форматирования документа включены в файл, они должны отображаться в заголовке RTF, который предшествует телу RTF. Если содержимое какой-либо группы не используется, группа может быть опущена. Любая группа, использующая свойства, определенные в другой группе, должна располагаться после группы, определяющей эти свойства. Например, свойства цвета и шрифта должны предшествовать группе стилей.
Версия RTF
Документ RTF должен начинаться с этих шести символов:
{\rtf1
где 1 показывает номер версии RTF.
Набор символов
После {\rtf1 документ должен объявить, какой набор символов он использует. Объявить набор символов можно с помощью одной из следующих команд:
\ansi
— документ имеет набор символов ANSI, также известный как кодовая страница 1252, обычный набор символов MSWindows.
\mac
— документ имеет набор символов MacAscii, обычный набор символов в старых (до 10) версиях Mac OS.
\pc
— документ находится в кодовой странице DOS 437, наборе символов по умолчанию для MS-DOS. Машинистки с хорошей мышечной памятью заметят, что этот набор символов до сих пор используется для интерпретации цифровых кодов «Alt», т. е. когда вы удерживаете Alt и набираете «130» на цифровой клавиатуре, получается é, потому 130 в CP437 — это é. Это единственное применение, которое CP437 видит в наши дни.
\pca
— документ находится в кодовой странице DOS 850, также известной как многоязычная кодовая страница MS-DOS.
Команда шрифта
За определением набора символов следует команда \deffN
. Это определяет, что номер шрифта N является шрифтом по умолчанию для этого документа. Номер шрифта N берется из таблицы шрифтов. Команда \deffN
технически необязательна, но она должна быть на всякий случай, поскольку общий пролог, например следующий, выбирает шрифт 0 в качестве шрифта по умолчанию.
{\rtf1\ansi\deff0
Таблица шрифтов
Все шрифты, которые можно использовать в документе, перечислены в таблице шрифтов, где каждый шрифт представлен номером шрифта. Документ должен иметь таблицу шрифтов, хотя некоторые программы будут работать и без нее.
Синтаксис таблицы шрифтов {\fonttbl //…объявления//…}, в котором каждое объявление имеет следующий базовый синтаксис:
{\fnumber\familycommandИмя шрифта;}
Таблица шрифтов с четырьмя объявлениями выглядит следующим образом:
{\fonttbl
{\f0\froman Times;}
{\f1\fswiss Arial;}
{\f2\fmodern Courier New;}
}
В документе с этой таблицей шрифтов {\f2 stuff}
будет печатать «stuff» в Courier New. Шрифт нельзя использовать в документе, пока он не будет указан в таблице шрифтов.
Конец документа
Каждый документ RTF должен заканчиваться }, чтобы закрыть группу, открытую {, которая является первым символом в документе. За последним } не может следовать ничего, кроме, возможно, новой строки.