Rich Text Format

Поделись знанием:
Перейти к: навигация, поиск
Rich Text Format
MIME-тип

text/rtf[1]
application/rtf[2]

Сигнатура

{\rtf

Тип формата

document file format

Открытый формат?

Нет

Rich Text Format, RTF (англ. rich — богатый; «формат обогащённого текста») — проприетарный[3][4] межплатформенный формат хранения размеченных текстовых документов, предложенный группами программистов, основавшими компании Microsoft и Adobe, как мета-тэговый формат для редактора Word в 1982 году. С тех пор спецификация формата несколько раз изменялась. После разрыва отношений с Microsoft компания Adobe продолжила самостоятельное развитие метатэгового языка, заложенного в основу RTF, создав в 1985 году язык PostScript.





Пример RTF-документа

В качестве примера рассмотрим следующий код в формате RTF:

{\rtf1
 Привет!
 \par
 {\i Это} некий
 отформатированный {\b текст}.\par
}

который будет выглядеть в текстовом процессоре с поддержкой RTF как

Привет!
Это некий отформатированный текст.

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

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

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

Кодирование символов

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

Использование

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

Текстовый редактор WordPad, встроенный в Microsoft Windows, по умолчанию сохраняет документы в формате RTF. Текстовые процессоры AbiWord и OpenOffice.org позволяют просматривать и редактировать файлы в формате RTF. Редактор по умолчанию в Mac OS X — TextEdit, также поддерживает RTF.

Поскольку основу RTF составляет обычный текст, довольно просто создать RTF на любом языке программирования. Например, в Perl для этих целей есть модуль RTF::Writer. В PHP можно использовать библиотеку [sourceforge.net/projects/phprtf/ PhpRtf Lite] для генерации в браузере RTF документов «на лету».

См. также

Напишите отзыв о статье "Rich Text Format"

Ссылки

  • [www.microsoft.com/downloads/details.aspx?familyid=DD422B8D-FF06-4207-B476-6B5396A18A2B&displaylang=en Спецификация RTF 1.9] для Word 2007 (февраль 2007)
  • [www.microsoft.com/downloads/details.aspx?FamilyID=ac57de32-17f0-4b46-9e4e-467ef9bc5540&displaylang=en Спецификация RTF 1.8] для Word 2003 (апрель 2004)
  • [msdn.microsoft.com/library/default.asp?url=/library/en-us/dnrtfspec/html/rtfspec.asp Спецификация RTF, версия 1.6] (май 1999) в MSDN
  • [latex2rtf.sourceforge.net/RTF-Spec-1.0.txt Спецификация RTF, версия 1.0] (июнь 1992) в проекте latex2rtf

Примечания

  1. [www.iana.org/assignments/media-types/text/ Text Media Types]. iana.org (8 июня 1993). Проверено 13 марта 2010. [www.webcitation.org/687ALM9hb Архивировано из первоисточника 2 июня 2012].
  2. [www.iana.org/assignments/media-types/application/rtf Application Media Types]. iana.org (18 июня 2007). Проверено 20 августа 2010. [www.webcitation.org/687ALoIjn Архивировано из первоисточника 2 июня 2012].
  3. [accessproject.colostate.edu/udl/modules/word/tut_rtf.cfm tutorial: Rich Text Format (RTF)]. Colorado State University. Проверено 13 марта 2010. [www.webcitation.org/687AO91x7 Архивировано из первоисточника 2 июня 2012].
  4. [archive.cabinetoffice.gov.uk/e-government/resources/handbook/html/4-3.asp 4.3 Non-HTML file formats]. e-Government Unit (май 2002). Проверено 13 марта 2010. [www.webcitation.org/687AOo0Hn Архивировано из первоисточника 2 июня 2012].
  5. Например \binN

Отрывок, характеризующий Rich Text Format

Единственное значение Березинской переправы заключается в том, что эта переправа очевидно и несомненно доказала ложность всех планов отрезыванья и справедливость единственно возможного, требуемого и Кутузовым и всеми войсками (массой) образа действий, – только следования за неприятелем. Толпа французов бежала с постоянно усиливающейся силой быстроты, со всею энергией, направленной на достижение цели. Она бежала, как раненый зверь, и нельзя ей было стать на дороге. Это доказало не столько устройство переправы, сколько движение на мостах. Когда мосты были прорваны, безоружные солдаты, московские жители, женщины с детьми, бывшие в обозе французов, – все под влиянием силы инерции не сдавалось, а бежало вперед в лодки, в мерзлую воду.
Стремление это было разумно. Положение и бегущих и преследующих было одинаково дурно. Оставаясь со своими, каждый в бедствии надеялся на помощь товарища, на определенное, занимаемое им место между своими. Отдавшись же русским, он был в том же положении бедствия, но становился на низшую ступень в разделе удовлетворения потребностей жизни. Французам не нужно было иметь верных сведений о том, что половина пленных, с которыми не знали, что делать, несмотря на все желание русских спасти их, – гибли от холода и голода; они чувствовали, что это не могло быть иначе. Самые жалостливые русские начальники и охотники до французов, французы в русской службе не могли ничего сделать для пленных. Французов губило бедствие, в котором находилось русское войско. Нельзя было отнять хлеб и платье у голодных, нужных солдат, чтобы отдать не вредным, не ненавидимым, не виноватым, но просто ненужным французам. Некоторые и делали это; но это было только исключение.
Назади была верная погибель; впереди была надежда. Корабли были сожжены; не было другого спасения, кроме совокупного бегства, и на это совокупное бегство были устремлены все силы французов.
Чем дальше бежали французы, чем жальче были их остатки, в особенности после Березины, на которую, вследствие петербургского плана, возлагались особенные надежды, тем сильнее разгорались страсти русских начальников, обвинявших друг друга и в особенности Кутузова. Полагая, что неудача Березинского петербургского плана будет отнесена к нему, недовольство им, презрение к нему и подтрунивание над ним выражались сильнее и сильнее. Подтрунивание и презрение, само собой разумеется, выражалось в почтительной форме, в той форме, в которой Кутузов не мог и спросить, в чем и за что его обвиняют. С ним не говорили серьезно; докладывая ему и спрашивая его разрешения, делали вид исполнения печального обряда, а за спиной его подмигивали и на каждом шагу старались его обманывать.
Всеми этими людьми, именно потому, что они не могли понимать его, было признано, что со стариком говорить нечего; что он никогда не поймет всего глубокомыслия их планов; что он будет отвечать свои фразы (им казалось, что это только фразы) о золотом мосте, о том, что за границу нельзя прийти с толпой бродяг, и т. п. Это всё они уже слышали от него. И все, что он говорил: например, то, что надо подождать провиант, что люди без сапог, все это было так просто, а все, что они предлагали, было так сложно и умно, что очевидно было для них, что он был глуп и стар, а они были не властные, гениальные полководцы.
В особенности после соединения армий блестящего адмирала и героя Петербурга Витгенштейна это настроение и штабная сплетня дошли до высших пределов. Кутузов видел это и, вздыхая, пожимал только плечами. Только один раз, после Березины, он рассердился и написал Бенигсену, доносившему отдельно государю, следующее письмо:
«По причине болезненных ваших припадков, извольте, ваше высокопревосходительство, с получения сего, отправиться в Калугу, где и ожидайте дальнейшего повеления и назначения от его императорского величества».
Но вслед за отсылкой Бенигсена к армии приехал великий князь Константин Павлович, делавший начало кампании и удаленный из армии Кутузовым. Теперь великий князь, приехав к армии, сообщил Кутузову о неудовольствии государя императора за слабые успехи наших войск и за медленность движения. Государь император сам на днях намеревался прибыть к армии.
Старый человек, столь же опытный в придворном деле, как и в военном, тот Кутузов, который в августе того же года был выбран главнокомандующим против воли государя, тот, который удалил наследника и великого князя из армии, тот, который своей властью, в противность воле государя, предписал оставление Москвы, этот Кутузов теперь тотчас же понял, что время его кончено, что роль его сыграна и что этой мнимой власти у него уже нет больше. И не по одним придворным отношениям он понял это. С одной стороны, он видел, что военное дело, то, в котором он играл свою роль, – кончено, и чувствовал, что его призвание исполнено. С другой стороны, он в то же самое время стал чувствовать физическую усталость в своем старом теле и необходимость физического отдыха.
29 ноября Кутузов въехал в Вильно – в свою добрую Вильну, как он говорил. Два раза в свою службу Кутузов был в Вильне губернатором. В богатой уцелевшей Вильне, кроме удобств жизни, которых так давно уже он был лишен, Кутузов нашел старых друзей и воспоминания. И он, вдруг отвернувшись от всех военных и государственных забот, погрузился в ровную, привычную жизнь настолько, насколько ему давали покоя страсти, кипевшие вокруг него, как будто все, что совершалось теперь и имело совершиться в историческом мире, нисколько его не касалось.