Rich text format

Як приклад розглянемо наступний код в форматі RTF:

який буде виглядати в текстовому процесорі з підтримкою RTF як

Вітання!
Це якийсь відформатований текст.

Символ \ вказує на початок керуючого коду. Код \ par означає перехід до нового рядка, \ b - перемикання на напівжирний шрифт. Фігурні дужки позначають групу; наприклад, в наведеному вище прикладі групою обмежується дію коду \ b. Все інше, крім фігурних дужок і керуючих кодів - це звичайний текст. Правильний RTF-документ повинен складатися з групи, що починається з керуючого коду \ rtf.

Як видно з прикладу, основою формату є простий текст, тобто формат є людино-читаним. Але в більшості випадків файли RTF, які генеруються автоматично такими процесорами як MS Word. містять стільки керуючих послідовностей, що розібратися в них простим читанням практично неможливо.

Цікаво, що синтаксис формату RTF сильно нагадує формат LaTeX. але на відміну від останнього, керуючі послідовності не є макросами. доступними для зміни, а командами з фіксованим поведінкою.

Хоча стандарт допускає 8-бітове кодування в окремих випадках [7]. текст у форматі RTF зазвичай кодується 7-бітними символами. Це обмежило б нас набором символів ASCII. але інші символи можна кодувати за допомогою escape-послідовностей. Символи можуть кодуватися двома способами: кодами в рамках зазначеної кодування символів. або кодами в Юникоде. Наприклад, якщо задана кодування Windows-1251. то код \ 'e8 відповідає букві і. Якщо потрібно символ в Юникоде, використовується код \ u. відразу після якого вказується 16-бітове число зі знаком в десятковій системі числення (значення, великі 32767, представляються як негативні), а за ним - символ для подання в програмах, які не мають підтримки Юнікоду. Наприклад, арабська буква «ب» представляється у вигляді послідовності \ u1576. причому в не-Юнікодние програмах на місці цього символу виведеться «?».

Більшість текстових процесорів реалізують імпорт / експорт в формат RTF.

Оскільки основу RTF становить звичайний текст. досить просто створити RTF на будь-якій мові програмування. Наприклад, в Perl для цих цілей є модуль RTF :: Writer. В PHP можна використовувати бібліотеку PhpRtf Lite для генерації в браузері RTF документів «на льоту».