Топ питань
Часова шкала
Чат
Перспективи

Rich Text Format

З Вікіпедії, вільної енциклопедії

Remove ads

Rich Text Format (часто скорочено RTF) — це власницький формат файлу[6][7][8] документа з опублікованою специфікацією, розроблений корпорацією Microsoft з 1987 по 2008 рік для міжплатформного обміну документами з продуктами Microsoft. До 2008 року корпорація Майкрософт публікувала оновлені специфікації RTF разом зі значними змінами версій Microsoft Word і Microsoft Office.

Коротка інформація Розширення:, MIME-тип: ...

Більшість текстових процесорів можуть читати та записувати деякі версії RTF.[9] Існує кілька різних версій специфікації RTF; переносимість файлів залежатиме від того, яка версія RTF використовується.[7][10]

RTF не слід плутати зі збагаченим текстом[11] або його попередником Rich Text[12][13], ані з RFT-DCA (Revisable Format Text-Document Content Architecture) від IBM, оскільки це різні специфікації.

Remove ads

Історія

Узагальнити
Перспектива

Річард Броді, Чарльз Сімоні та Девід Любберт, члени групи розробників 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, Дата публікації ...
Remove ads

Синтаксис коду

Він програмується за допомогою груп, зворотної косої риски, контрольного слова та розділювача. Групи містяться у фігурних дужках ({}) і вказують, які атрибути слід застосувати до певного тексту.

Зворотний слеш (\) вводить керуюче слово, яке є спеціально запрограмованою командою для RTF. Керуючі слова можуть мати певні стани, в яких вони активні. Ці стани представлені цифрами. Наприклад,

\b0
indicates that the Bold text is off
\b1
indicates that the Bold text is on

Роздільник — це одна з трьох речей:

  1. Пробіл
  2. Цифра або дефіс (наприклад, -23, 23, 275)
  3. Символ, відмінний від цифри або літери (наприклад, \, /, })[30]

Як приклад, наступний код RTF

 {\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
 Це якийсь {\b жирний} текст.\par
 }

буде представлено таким чином:

Це якийсь жирний текст.

Remove ads

Кодування символів

Узагальнити
Перспектива

Стандартний файл 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, Кодова сторінка ...

Для вихідного коду 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]

Remove ads

Читабельність людиною

Узагальнити
Перспектива

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 також підтримував вбудовані об'єкти Microsoft OLE та об'єкти передплатників Macintosh Edition Manager, які не читаються людиною.

Remove ads

Загальне використання та сумісність

Узагальнити
Перспектива

Більшість програмного забезпечення для обробки текстів підтримує імпорт і експорт у форматі 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]

Remove ads

Підтримка формату програмним забезпеченням

Узагальнити
Перспектива

Кожна програма зазвичай реалізує лише деякі версії або підмножини специфікації 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]

GNU UnRTF — це програма з відкритим кодом для перетворення 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.

Remove ads

Критика

Формат Rich Text Format був стандартним форматом файлів для текстових документів у програмах, розроблених для Microsoft Windows. Microsoft спочатку не оприлюднила специфікацію RTF, що ускладнювало конкурентам розробку функцій перетворення документів у своїх програмах. Оскільки розробники Microsoft мали доступ до специфікації, програми Microsoft мали кращу сумісність із форматом. Крім того, кожного разу, коли Microsoft змінювала специфікацію RTF, власні програми Microsoft мали перевагу за часом виходу на ринок, оскільки конкурентам доводилося переробляти свої програми після вивчення новішої версії формату.

У своїй антимонопольній скарзі проти Microsoft у 2004 році Novell стверджувала, що дії Microsoft були антиконкурентними.[64][65]

Remove ads

Примітки

Джерела

Посилання

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads