Перейти к основному содержимому

Форматы файлов

Что такое RTF? Как устроен формат Rich Text Format

RTF - формат документов, созданный Microsoft в 1987 году, который описывает форматированный текст обычными символами ASCII. Разбираем его структуру, ограничения и тонкости конвертации.

Автор: Hemen Dönüştür Editör EkibiОпубликовано: 7 мин чтения

Значок файла с надписью RTF

О RTF редко говорят, но вы почти наверняка сталкивались с ним много раз: в меню «Экспорт» старой программы, как с форматом сохранения по умолчанию в TextEdit на Mac или как с «самым надежным вариантом» при переносе документа между текстовыми редакторами. Rich Text Format описывает форматирование, такое как полужирный, курсив, шрифты, цвета и таблицы, с помощью обычных текстовых символов. В этой статье расскажем, как появился RTF, как выглядит файл RTF изнутри, в чем он хорош, где уступает и на что обратить внимание при его конвертации.

Что такое RTF?

RTF - текстовый формат, разработанный Microsoft для переноса документов между разными программами и операционными системами. Это не двоичный формат вроде DOC: откройте файл RTF в Блокноте, и вы сможете прочитать свой текст вперемешку с командами, начинающимися с обратной косой черты. Но в отличие от HTML, он не предназначался для написания вручную. Его задача в том, чтобы одна программа могла прочитать документ, созданный другой, вместе с форматированием.

Сразу стоит развеять одну распространенную путаницу: вариант «форматированный текст» (rich text) в почтовых клиентах и веб-формах обычно означает просто текст с оформлением и часто является HTML. RTF, о котором идет речь в этой статье, - это конкретный формат файла с расширением .rtf и собственным синтаксисом.

Краткая история

RTF разработали в середине и конце 1980-х годов Ричард Броди, Чарльз Симони и Дэвид Люберт из команды Microsoft Word. Первые программы чтения и записи RTF вышли в 1987 году вместе с Word 3.0 для Macintosh и реализовывали RTF 1.0. В следующие двадцать лет формат развивался вместе с Word:

ВерсияДатаПримечания
1.01987Первая версия, вместе с Word 3.0 (Mac)
1.11989Встраивание шрифтов, вместе с Word 4
1.2 - 1.41993 - сентябрь 1995Версии, выходившие с Word 5, Word 6 и Word 95
1.5Апрель 1997Поддержка Unicode в Word 97 (управляющее слово \u)
1.6 - 1.8Май 1999 - апрель 2004Версии, выходившие с Word 2000, 2002 и 2003
1.9.1Март 2008Последняя версия, совместимая с Word 2007

После версии 1.9.1 Microsoft перестала развивать спецификацию RTF. Согласно описанию формата в Библиотеке Конгресса США, Microsoft указывает, что функции, появившиеся в Word 2010 и более поздних версиях, при сохранении в RTF не сохраняются. Иными словами, RTF по-прежнему поддерживается, но больше не развивается.

Что находится внутри файла RTF?

RTF строится на трех элементах:

  • Группы: участки, заключенные в фигурные скобки { }. Изменение форматирования внутри группы заканчивается, когда группа закрывается.
  • Управляющие слова: последовательности букв, начинающиеся с обратной косой черты, например \b (полужирный) или \fs24 (размер шрифта в половинах пункта; 24 означает 12 пт). Они могут принимать числовой параметр: \b1 включает полужирный, а \b0 выключает его.
  • Управляющие символы: обратная косая черта, за которой следует один небуквенный символ, например \~ (неразрывный пробел) или \'e9 (символ из кодовой страницы в шестнадцатеричной записи).

Простой документ RTF выглядит так:

{\rtf1\ansi\ansicpg1252\deff0
{\fonttbl{\f0 Times New Roman;}}
{\colortbl;\red200\green0\blue0;}
\f0\fs24 This is a {\b bold} word and some {\cf1 red} text in a caf\'e9.\par
}

Файл открывается последовательностью {\rtf1, за которой следуют набор символов (\ansi) и кодовая страница (\ansicpg1252, западноевропейская кодовая страница Windows). Таблица шрифтов (\fonttbl) и таблица цветов (\colortbl) объявляются в начале, а в тексте на них ссылаются по номеру. \par завершает абзац. Остальная часть документа содержит настройки разделов, колонтитулы, абзацы и таблицы; Библиотека Конгресса отмечает, что RTF рассматривает таблицы как разновидность абзацев.

Символы за пределами ASCII можно записать двумя способами. Старый способ использует шестнадцатеричные escape-последовательности вроде \'e9, которые ссылаются на символ в объявленной кодовой странице (E9 в кодовой странице 1252 означает «é»). Способ, добавленный в RTF 1.5, использует управляющие слова Unicode, например ၆?: число задает код символа в Unicode (1046 - это русская буква «Ж»), а символ после него служит заменой для программ без поддержки Unicode. RTF не хранит текст в кодировке Unicode вроде UTF-8; сам файл обычно состоит из 7-битных символов ASCII.

Где используется RTF?

  • Перенос документов между программами: передача форматированного текста между разными текстовыми редакторами или операционными системами.
  • Отчеты из программ: многие деловые и отраслевые приложения формируют отчеты с оформлением в RTF, не завися от Word, потому что генерировать RTF гораздо проще, чем DOCX.
  • Буфер обмена: RTF - один из распространенных форматов, которые используются при копировании форматированного текста в Windows и macOS.
  • Простые редакторы: WordPad и TextEdit используют RTF по умолчанию.

Сильные и слабые стороны

Сильные стороныСлабые стороны
Читается почти любым текстовым редакторомНе развивается с 2008 года
Текстовый формат, поэтому текст легко извлечьФайлы с изображениями могут быть очень большими
Нет языка макросовВстроенные объекты OLE и ссылки на шаблоны могут быть угрозой безопасности
Прост в генерации, идеален как вывод программЧасто непонятно, какую версию и какие функции поддерживает программа
Прямая и обратная совместимость между версиямиПродвинутые функции Word теряются

О безопасности: RTF не может содержать макросы, но и безрисковым его не назовешь. Записи, собранные в Википедии, показывают, что файлы RTF использовались в атаках через внедрение шаблонов и встроенные объекты OLE; связанные с этим уязвимости в старых версиях WordPad и в Word были исправлены в 2017 и 2015 годах. Относитесь к файлам RTF из неизвестных источников так же осторожно, как к любым другим документам.

Какие программы открывают RTF?

Открывать и сохранять RTF умеют Microsoft Word, LibreOffice Writer, Apple Pages, TextEdit и WPS Office. WordPad, долгое время служивший стандартным редактором RTF в Windows, больше не входит в актуальные версии Windows 11, поэтому там понадобится Word или LibreOffice. Библиотека Конгресса также отмечала, что файлы RTF не открывались в веб-версии и версии Word для планшетов. Google Документы умеют импортировать RTF и скачивать документы в RTF.

Частые проблемы и их решение

Символы с диакритикой или кириллица отображаются неправильно

Если программа, создавшая файл, объявила не ту кодовую страницу или использовала шестнадцатеричные escape-последовательности из другой кодовой страницы вместо управляющих слов Unicode, символы подменяются: слово «Привет» превращается в «Ïðèâåò», классический признак того, что перепутаны кодовые страницы 1251 (кириллица) и 1252 (западноевропейская). Проще всего исправить исходник, открыв файл в Word или LibreOffice и сохранив его в DOCX.

Файл намного больше, чем ожидалось

RTF обычно хранит изображения в виде шестнадцатеричного текста, а не двоичных данных, из-за чего объем данных изображений примерно удваивается. Для документов с изображениями DOCX или PDF дают гораздо меньшие файлы.

Форматирование меняется в разных программах

Каждая программа поддерживает свое подмножество RTF и игнорирует незнакомые управляющие слова. Если внешний вид должен быть точным, отправляйте окончательную версию в PDF.

Советы по конвертации файлов RTF

В нашем конвертере файлы RTF загружаются на наш сервер, обрабатываются в LibreOffice и удаляются в течение 30 минут. Конвертация между RTF, DOCX, DOC и PDF выполняется напрямую без промежуточного шага, поэтому верстка страниц, колонтитулы, таблицы и нумерация списков сохраняются.

  • RTF в Word - лучший вариант, чтобы редактировать вывод устаревших программ и уменьшить размер файла.
  • RTF в PDF фиксирует внешний вид, который иначе различается от программы к программе.
  • RTF в TXT убирает все управляющие слова и оставляет только читаемый текст.
  • Используя Word в RTF, помните, что у функций, появившихся после Word 2010 (новые типы диаграмм, некоторые параметры макета), может не быть аналога в RTF.
  • Если из простого текста нужен документ с оформлением, TXT в RTF переносит текст абзац за абзацем. RTF, полученный из таких источников, как HTML и Markdown, также сохраняет полужирный текст, заголовки, списки и таблицы благодаря модулю экспорта RTF в LibreOffice.

Часто задаваемые вопросы

Чем RTF отличается от DOCX?

RTF описывает форматирование управляющими словами внутри обычного текста и не менялся с 2008 года. DOCX - актуальный стандарт на основе ZIP, состоящий из XML-частей. DOCX поддерживает больше функций и для документов с изображениями дает гораздо меньшие файлы.

Может ли файл RTF содержать макросы?

Нет, в RTF нет языка макросов. Однако встроенными объектами OLE и ссылками на шаблоны могут злоупотреблять, поэтому будьте осторожны с файлами RTF из неизвестных источников.

Поддерживается ли RTF до сих пор?

Да, Word и другие текстовые редакторы по-прежнему открывают и сохраняют RTF. Но последняя версия спецификации, 1.9.1, вышла в марте 2008 года, и Microsoft больше не развивает формат.

Как открыть файл RTF в Windows 11?

В версиях без WordPad откройте его в Word, LibreOffice Writer или WPS Office. Если файл нужно только прочитать, можно также конвертировать его в PDF и открыть в браузере.

Почему в RTF ломаются специальные символы?

Обычно потому, что программа, создавшая файл, объявила неправильную кодовую страницу. Программы, которые записывают управляющие слова Unicode, полностью избегают этой проблемы.

Источники

Похожие конвертеры

Все статьи