Розширення: | .rtf |
---|---|
MIME-тип: | text/rtf[1] |
Type code: | 'RTF.' [3][4][5] |
Узагальнений ідентифікатор типу: | public.rtf |
Магічне число: | {\rtf |
Розробник: | Microsoft |
Рік випуску: | 1987 |
Остання версія: | 1.9.1 |
Дата випуску останньої версії: | 19 березня2008 |
Тип формату: | формат файлудокумента |
Відкритий формат? | No |
Rich Text Format (часто скороченоRTF) — цевласницький формат файлу[6][7][8]документа з опублікованою специфікацією, розробленийкорпорацією Microsoft з 1987 по 2008 рік дляміжплатформного обміну документами з продуктами Microsoft. До 2008 року корпорація Майкрософт публікувала оновлені специфікації RTF разом зі значними змінами версійMicrosoft Word іMicrosoft Office.
Більшістьтекстових процесорів можуть читати та записувати деякі версії RTF.[9] Існує кілька різних версій специфікації RTF; переносимість файлів залежатиме від того, яка версія RTF використовується.[7][10]
RTF не слід плутати зізбагаченим текстом[11] або його попередником Rich Text[12][13], ані зRFT-DCA (Revisable Format Text-Document Content Architecture) від IBM, оскільки це різні специфікації.
Річард Броді,Чарльз Сімоні та Девід Любберт, члени групи розробниківMicrosoft Word, розробили оригінальний RTF у середині-кінці 1980-х років. Перший переглядач та редактор RTF був надісланий у 1987 році як частина Microsoft Word 3.0 дляMacintosh, який реалізував специфікацію RTF версії 1.0. Усі наступні випуски Microsoft Word для Macintosh, а також усі версії Windows можуть читати та записувати у форматі RTF.
Microsoft підтримує RTF. Остаточна версія була 1.9.1 у 2008 році, яка реалізувала функціїOffice 2007. Корпорація Майкрософт припинила вдосконалення специфікації RTF, тому нові функції Word 2010 або новішої версії не зберігатимуться належним чином у RTF.[14] Корпорація Майкрософт не очікує подальших оновлень RTF, але заявила про готовність розглянути редакційні та інші несуттєві зміни специфікації RTF під час відповідного періоду голосування заISO/IEC 29500.[15]
Файли RTF використовувалися для створення файлів довідки Windows, хоча з тих пір вони були замінені файламиMicrosoft Compiled HTML Help .
Версія RTF | Дата публікації | Версія Microsoft Word | Дата випуску MS Word | Примітки |
---|---|---|---|---|
1.0 | 1987 рік | Microsoft Word 3 | 1987 рік | Остання редакція відбулася в червні 1992 року.[18][19] Редакція 1992 року визначила підтримку для об'єктів MicrosoftObject Linking and Embedding (OLE) і об'єктів передплатника Macintosh Edition Manager. Він також підтримував включення типів зображеньWindows Metafile,PICT, Windows device-dependent bitmap, Windows device-dependent bitmap іOS/2 Metafile Metafile. |
1.1 | Microsoft Word 4 | 1989 рік | Дозволено вбудовування шрифтів, що дозволяє розташовувати дані шрифту у файлі. | |
1.2 | 1993 рік | Microsoft Word 5 | 1991 рік | [20][21] |
1.3 | Січень 1994 року | Microsoft Word 6 | 1993 рік | 1/94 GC0165; для незалежності від пристрою та сумісності заохочується вбудовування растрових зображень уметафайли Windows[22][23] замість використання незалежних від пристрою растрових зображень Windows або залежних від пристрою растрових зображень Windows. |
1.4 | Вересень 1995 року | Microsoft Word 95/Word 7 | 1995 рік | [24] |
1.5 | Квітень 1997 року | Microsoft Word 97/Word 8 | 1997 рік | ПредставленоUnicode RTF, який підтримує 16-бітну схему кодування символів Unicode; визначено включення типів зображеньPNG,JPEG іEMF у шістнадцятковому (за замовчуванням) або двійковому форматі до файлу RTF.[25] Також містить японську локальну специфікацію RTF під назвою RTF-J для японської версії Word; RTF-J дещо відрізняється від стандартної специфікації RTF.[25] |
1.6 | Травень 1999 року | Microsoft Word 2000/Word 9 | 1999 рік | Включено Pocket Word і Exchange (використовується для перетворення RTF-HTML).[3] |
1.7 | Серпень 2001 року | Microsoft Word 2002/Word 10 | 2001 рік | 8/2001– Специфікація Word 2002 RTF[26][27] |
1.8 | Квітень 2004 року | Microsoft Word 2003/Word 11 | 2003 рік | 10/2003– Специфікація Word 2003 RTF[4] |
1.9.1 | 19 березня 2008 року (RTF 1.9 – опубліковано в січні 2007 р.)[28] | Microsoft Word 2007/Word 12 | 2006 рік | Дозволена розміткаXML – Спеціальні теги XML, SmartTags, математичні елементи в документі RTF, захист паролем, елементи, що відповідаютьOffice Open XML Ecma-376, частина 4[29] |
Він програмується за допомогою груп, зворотної косої риски, контрольного слова та розділювача. Групи містяться у фігурних дужках ({}) і вказують, які атрибути слід застосувати до певного тексту.
Зворотний слеш (\) вводить керуюче слово, яке є спеціально запрограмованою командою для RTF. Керуючі слова можуть мати певні стани, в яких вони активні. Ці стани представлені цифрами. Наприклад,
\b0
\b1
Роздільник — це одна з трьох речей:
Як приклад, наступний код RTF
{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard Це якийсь{\b жирний} текст.\par}
буде представлено таким чином:
Це якийсьжирний текст.
Стандартний файл RTF може складатися лише з 7-розрядних символівASCII, але може використовуватиescape-послідовності для кодування інших символів.[31] Двома екранованими символами є екрановані символикодової сторінки та, починаючи з RTF 1.5, екранованісимволи Unicode. У вихідній кодовій сторінці двішістнадцяткові цифри після зворотної косої риски йапостроф друкарської машини позначають символ, узятий із кодової сторінки Windows. Наприклад, якщо для кодової сторінки встановленоWindows-1256, послідовність\'c8
кодуватиме арабську літеруbāʼ ب. Також можна вказати «Набір символів» у преамбулі документа RTF і пов'язати його з заголовком. Наприклад, у преамбулі є текст\f3\fnil\fcharset128
, тоді в тілі документа текст\f3\'bd\'f0
представлятиме кодову точку0xbd 0xf0
із набору символів 128 (що відповідає кодовій сторінціShift-JIS), яка кодує «金».
Набір символів RTF | Кодова сторінка | Опис |
---|---|---|
0 | Windows-1252 | Латинський алфавіт, Західна Європа / Америка |
1 | 0 | Стандартна кодова сторінка Windows API для локалі системи |
2 | 42 | Символ (PUA-mapped)[32] набір символів |
77 | 2 | Кодова сторінка сумісності з Macintosh за умовчанням для локалі системи |
128 | Windows-932 | Японська, Shift JIS (версія для Windows) |
129 | Windows-949 | Корейська, уніфікований код хангиль (розширений Wansung) |
130 | Windows-1361 | Корейська, Johab (версія на основі ASCII) |
134 | Windows-936 | Китайська, GBK (розширений GB 2312) |
136 | Windows-950 | Китайська, Big5 |
161 | Windows-1253 | Грецька |
163 | Windows-1254 | Латинський алфавіт, турецька |
177 | Windows-1258 | Латинський алфавіт, в'єтнамська |
178 | Windows-1255 | Іврит |
186 | Windows-1256 | Арабська |
204 | Windows-1257 | Балтійський |
222 | Windows-1251 | Кирилиця |
238 | Windows-1250 | Латинський алфавіт, Східна Європа |
255 | 1 | Кодова сторінка OEM за умовчанням для локалі системи |
Для вихідного коду Unicode використовується контрольне слово\u
, за яким слідує 16-розрядне ціле число зі знаком, яке відповідає номеру одиниці коду Unicode UTF-16. Для програм, які не підтримують Unicode, це має супроводжуватися найближчим представленням цього символу на вказаній кодовій сторінці. Наприклад,\u1576?
дасть арабську літеруbāʼ ب, але вказує на те, що старіші програми, які не підтримують Unicode, мають відображати її як знак питання.
Керуюче слово\uc0
можна використовувати, щоб вказати, що наступні керуючі послідовності Юнікоду в межах поточної групи не вказують символ підстановки.
До версії 1.5 специфікації RTF у 1997 році RTF обробляв лише 7-бітові символи безпосередньо та 8-бітові символи, закодовані як шістнадцяткові (з використанням\'xx
). Однак, починаючи з RTF 1.5, керуючі слова RTF зазвичай приймають 16-бітні числа зі знаком як аргументи. Значення Unicode, що перевищують 32767, мають бути виражені від'ємними числами.[25] Якщо символ Unicode знаходитьсяза межами BMP, він кодується сурогатною парою. Підтримка Unicode була здійснена через зміни обробки тексту в Microsoft Word — Microsoft Word 97 частково підтримує Unicode і обробляє текст за допомогою16-бітної схеми кодування символів Unicode.[25] Microsoft Word 2000 і новіші версії є програмами з підтримкою Unicode, які обробляють текст за допомогою 16-бітної схеми кодування символів Unicode.[3]
Оскільки файли RTF зазвичай являють собою 7-розряднийпростий текст ASCII, їх можна легко передавати між операційними системами ПК. Конвертери, які спілкуються з Microsoft Word для MS Windows або Macintosh, зазвичай очікують передачі даних у вигляді 8-бітних символів і двійкових даних, які можуть містити будь-які 8-бітні значення.[29]
RTF — це формат даних для збереження та спільного використання документів, а немова розмітки; він не призначений для інтуїтивно зрозумілого та легкого введення.[33][34] Тим не менш, на відміну від багатьох форматів обробки тексту, код RTF можечитатися людиною . Коли RTF-файл, який містить переважно латинські символи бездіакритики, переглядається як звичайний текстовий файл, основний текст ASCII читається за умови, що автор зберіг стисле форматування.
Коли було випущено RTF, більшість текстових процесорів використовували двійкові формати файлів; Microsoft Word, наприклад, використовував формат файлуDOC. RTF був унікальним своїм простим керуванням форматуванням, яке дозволяло програмам, які не підтримують RTF, наприкладMicrosoft Notepad, відкривати та надавати читабельні файли. Сьогодні більшість текстових процесорів перейшли на формати файлів на основі XML (Word перейшов на формат файлів.docx). Незважаючи на це, ці файли містять велику кількість коду форматування, тому вони часто в десять або більше разів більші за відповідний звичайний текст.[35][33]
Щоб RTF відповідав стандартам, символи, відмінні від ASCII, повинні бути екрановані. Таким чином, навіть за стислого форматування текст, у якому використовуються певні тире та лапки, є менш читабельним. Латинські мови з великою кількістюдіакритичних знаків особливо важко читати в RTF, оскільки вони призводять до замін на \'f1 замістьñ і \'e9 замістьé . Нелатинські шрифти нерозбірливі в RTF — \u21563, наприклад, використовується для吻. З самого початку RTF також підтримував вбудовані об'єкти MicrosoftOLE та об'єкти передплатників Macintosh Edition Manager, які не читаються людиною.
Більшість програмного забезпечення для обробки текстів підтримує імпорт і експорт у форматі RTF для певної специфікації RTF або пряме редагування, що робить його «загальним» форматом між інакше не сумісним програмним забезпеченням для обробки текстів та операційними системами. Більшість програм, які читають файли RTF, мовчки ігнорують невідомі керуючі слова RTF.[36] Ці фактори сприяють йогосумісності, хоча це все ще залежить від конкретної версії RTF, яка використовується.[7] Існує кілька свідомо створених або випадково народжених діалектів RTF.[36]
RTF — це внутрішня мова розмітки, яка використовується Microsoft Word.[33] З 1987 року файли RTF можна передавати туди-сюди між багатьма старими та новими комп'ютерними системами (а тепер і через Інтернет), незважаючи на відмінності між операційними системами та їх версіями. Це робить його корисним форматом для базових форматованих текстових документів, таких як інструкції з експлуатації, резюме, листи та скромні інформаційні документи. Ці документи, як мінімум, підтримують форматування тексту жирним шрифтом, курсивом і підкресленням. Також зазвичай підтримуються вирівняний за лівим, центральним і правим краєм текст, специфікацію шрифту та поля документа.
Типові параметри шрифту та полів, стилі та інші функції залежать від типових параметрів програми. Також може бути несумісність між різними версіями RTF, наприклад між специфікаціями RTF 1.0 1987 і пізнішими, або між RTF 1.0-1.4 і RTF 1.5+ у використанні символів Unicode.[37][38][39] І хоча RTF підтримує такі метадані, як назва та автор, не всі реалізації підтримують це. Незважаючи на це, формат RTF є достатньо послідовним, щоб вважатися високопортативним і прийнятним длякросплатформного використання.
Об'єкти Microsoft Object Linking and Embedding (OLE) і об'єкти передплатника Macintosh Edition Manager дозволяють вбудовувати інші файли всередину RTF, наприклад таблиці або діаграми з програми для роботи з електронними таблицями. Однак, оскільки ці об'єкти не підтримуються широко в програмах для перегляду або редагування файлів RTF, вони також обмежують сумісність RTF.[40][41][42][43][44] Якщо програмне забезпечення, яке розуміє певний об'єкт OLE, недоступне, об'єкт відображається за допомогою зображення об'єкта, вбудованого разом із ним.[45]
RTF підтримує включення JPEG, PNG, Enhanced Metafile (EMF),Windows Metafile (WMF), Apple PICT, Windows device-dependent bitmap і OS/2 Metafile типи зображень у шістнадцятковому (за замовчуванням) або двійковому форматі у файлі RTF. Однак не всі ці типи зображень підтримуються в усіх програмах читання RTF. Коли документ RTF відкривається в програмному забезпеченні, яке не підтримує тип вставленого зображення, зображення не відображається. Редактори RTF зазвичай або перетворюють вставлене зображення непідтримуваного типу на зображення одного з підтримуваних типів, або взагалі не включають зображення.
Для кращої сумісності з продуктами Microsoft деякі редактори RTF включають те саме зображення в двох різних типах в одному файлі RTF: один підтримуваний тип зображення для відображення та одна нестиснена WMF-копія оригінального зображення для покращення сумісності з деякими програмами Microsoft, наприклад Wordpad.[46]
Цей метод значно збільшує розмір файлу RTF. Специфікація RTF не вимагає використання цього методу, і кілька реалізацій не включають копію WMF (наприклад, Abiword або Ted).
Для Microsoft Word також можна встановити певне значення реєстру («ExportPictureWithMetafile=0»), щоб заборонити Word зберігати копію WMF.[46]
RTF підтримуєвбудовування шрифтів, які використовуються в документі, але ця функція не підтримується широко в програмних реалізаціях.[47][48][49]
RTF також підтримує загальні назви сімейств шрифтів, які використовуються длязаміни шрифтів:roman (serif),Swiss (sans-serif),modern (monospace),script,decorative таtechnical.[19] Ця функція також не підтримується широко.
Починаючи з RTF 1.0, специфікація RTF підтримує анотації/коментарі документів.[19] Специфікація RTF 1.7 визначила деякі нові функції для анотацій, зокрема позначку дати (раніше була лише «мітка часу») і батьків анотацій.[27] Коли документ RTF із анотаціями відкривається в програмі, яка не підтримує анотації RTF, анотації не відображаються. Так само, коли документ із анотаціями зберігається як RTF у програмі, яка не підтримує анотації RTF, анотації не зберігаються у файлі RTF. Деякі реалізації, як-от Abiword (починаючи з версії 2.8) і IBM Lotus Symphony (до версії 1.3), можуть приховувати анотації за замовчуванням або потребувати певних дій користувача для їх відображення.
Специфікація RTF також підтримує виноски, які широко підтримуються у реалізаціях RTF (наприклад, у OpenOffice.org, Abiword, KWord, Ted, але не у Wordpad). Кінцеві виноски реалізовано як варіацію виносок, тому програми, які підтримують виноски, але не підтримують кінцеві виноски, відображатимуть кінцеву виноску як виноску.
Продукти Microsoft не підтримують коментарі в нижніх колонтитулах, виносках і заголовках. Подібним чином продукти Microsoft не підтримують виноски в верхніх і нижніх колонтитулах або коментарях. Вставлення коментаря або виноски в один із цих заборонених контекстів може призвести до пошкодження документа.[29]
Специфікація RTF 1.2 визначила використання об'єктів малювання, відомих як фігури, таких як прямокутники, еліпси, лінії, стрілки та багатокутники. Специфікація RTF 1.5 представила багато нових керуючих слів для малювання об'єктів.[25]
Однак багато реалізацій RTF, наприкладApache OpenOffice, не підтримують об'єкти малювання[50] (хоча вони підтримуються вLibreOffice 4.0[51]) або Abiword.[52] Програми, які не підтримують об'єкти малювання RTF, не відображають і не зберігають фігури. Деякі реалізації також не відображатимуть текст усередині об'єктів малювання.[53][54]
На відміну від формату DOC Microsoft Word, а також новіших форматівOffice Open XML іOpenDocument, RTF не підтримуємакроси . З цієї причини RTF часто рекомендувався замість цих форматів, коли було занепокоєння щодо поширення комп'ютерних вірусів через макроси. Однак, розширення RTF не гарантує що файл є безпечним, оскільки Microsoft Word відкриє стандартні файли DOC, зі зміненим на RTF розширенням, і запустить будь-які макроси, що містяться в них, як звичайно. Щоб визначити, чи є підозрілий файл справді RTF, потрібне ручне дослідження файлу в текстовому редакторі, такому якБлокнот, або використаннякомандиfile
вUNIX-подібних системах.[9][55] Увімкнення параметра Word «Підтвердити перетворення формату файлу під час відкриття» також може допомогти, попереджаючи, що документ, який відкривається, має формат, що не відповідає формату, передбаченому його розширенням, і надаючи можливість перервати відкриття цього файлу. Один експлойт, що атакує вразливість, було виправлено в Microsoft Word у квітні 2015 року.[56]
З 2014 року з'явилися RTF-файли зловмисного програмного забезпечення, які містять експлойтиOpenXML.[57]
Кожна програма зазвичай реалізує лише деякі версії або підмножини специфікації RTF.[7] Багато доступних конвертерів RTF не можуть зрозуміти всі нові функції в останніх специфікаціях RTF.[37][58]
РедакторWordPad у Microsoft Windows за замовчуванням створює файли RTF. Колись за замовчуванням використовувався формат файлу Microsoft Word 6.0, але підтримку збереження для документів Word (.doc) було вилучено в оновленні безпеки. У Windows 7 також припинено підтримку читання. WordPad не підтримує деякі функції RTF, наприклад верхні та нижні колонтитули.[59] Однак WordPad може читати та зберігати багато функцій RTF, які він не може створити, включаючи таблиці, закреслення, верхній індекс, нижній індекс, «додаткові» кольори, кольори фону тексту, нумеровані списки, відступи праворуч або ліворуч, квазігіпертекст і URL-посилання, а також різні міжрядкові інтервали. RTF також є форматом даних для «текстових елементів керування» в MS Windows API.[33]
Текстовий редактор за замовчуванням дляmacOS,TextEdit, також може переглядати, редагувати та зберігати файли RTF, а також файлиRTFD, і використовує формат як стандартний. Станом на липень 2009 року TextEdit має обмежені можливості редагування полів документа RTF. Набагато старіші прикладні програми для обробки текстів Mac, такі якMacWrite таWriteNow, мали ті самі можливості RTF, що й TextEdit.
Безкоштовні текстові процесори з відкритим кодомAbiWord,Apache OpenOffice,Bean,Calligra,KWord,LibreOffice іNeoOffice можуть переглядати, редагувати та зберігати файли RTF. Формат RTF також використовується в текстовому процесоріTed .
Scrivener використовує окремі файли RTF для всіх текстових файлів, які складають певний «проект».
Безкоштовна програмаSIL International, для розробки та публікації словників, використовує RTF як найпоширенішу форму виведення документів. Файли RTF, створені Toolbox, призначені для використання вMicrosoft Word, але також можуть використовуватися іншими текстовими процесорами, що підтримують RTF.
RTF можна використовувати на деяких пристроях для читання електронних книг завдяки його сумісності,[60] простоті та низьких вимогах до процесора.
Сценарій з відкритим кодом rtf2xml може частково конвертувати RTF у XML.[61][62]
GNUUnRTF — це програма з відкритим кодом для перетворення RTF у HTML, LaTeX, макроси troff та інші формати.pyth — це бібліотекаPython для створення та конвертації документів у форматах RTF, XHTML і PDF.Ruby RTF — це проект для створення форматованого текстового вмісту за допомогоюRuby .RaTFink — це бібліотека процедур Tcl, безкоштовне програмне забезпечення для генерування виводу RTF і сценарій Cost для перетворення SGML у RTF.RTF::Writer — це модульPerl для створення документів RTF.PHPRtfLite — це API, який дозволяє розробникам створювати документи RTF за допомогоюPHP.Pandoc — це конвертер документів з відкритим вихідним кодом із кількома вихідними форматами, включаючи RTF.RTFGen — це проект для створення документів RTF за допомогою чистогоPHP.rtf.js — це бібліотека на основіJavaScript для відтворення документів RTF у HTML.
Інструмент командного рядка macOS textutil може конвертувати файли між форматами rtf, rtfd, text, doc, docx, wordml, odt і webarchive.[63] Редактор Ted також може конвертувати файли RTF у формат HTML і PS.
Формат Rich Text Format був стандартним форматом файлів для текстових документів у програмах, розроблених для Microsoft Windows. Microsoft спочатку не оприлюднила специфікацію RTF, що ускладнювало конкурентам розробку функцій перетворення документів у своїх програмах. Оскільки розробники Microsoft мали доступ до специфікації, програми Microsoft мали кращу сумісність із форматом. Крім того, кожного разу, коли Microsoft змінювала специфікацію RTF, власні програми Microsoft мали перевагу за часом виходу на ринок, оскільки конкурентам доводилося переробляти свої програми після вивчення новішої версії формату.
У своїй антимонопольній скарзі проти Microsoft у 2004 роціNovell стверджувала, що дії Microsoft були антиконкурентними.[64][65]