Документ rtf что. Что означает формат файла RTF, чем его открыть

Буквы «RTF», идущие в имени файла после точки, означают расширенный текстовый формат. Помимо собственно текста, который имеет широкий диапазон форматирования шрифтов, абзацев и таблиц, в документе RTF присутствуют графические объекты. Также используется форматирование страниц: применение фоновых заливок, подложек и т.п. Данный тип файла очень схож с форматом «DOC», но был разработан гораздо раньше для использования в буфере обмена. То есть, при копировании какого-либо размеченного текстового контента, он сохраняется в буфере именно в этом формате.

В каждой операционной системе имеется встроенный редактор, который может открыть файлы RTF: в «Windows» - «Wordpad», в «Mac» - «Text Edit». Помимо системных редакторов для открытия RTF файлов могут быть использованы приложения из офисных пакетов: редакторы «Ms Office Word», « », « » и «Abi Word».

Необходимо отметить также портативную бесплатную программу «CLi.K» (Clipboard Keeper). Эта маленькая, но многофункциональная утилита предназначена для работы с буфером обмена и использует RTF- формат в своей работе. Открывать файлы нужно из рабочего окна утилиты.

Привет друзья! Сегодня мы поговорим о необычном формате файла, который называется rtf. Из статьи вы узнаете немного из истории создания этого расширения, чем открыть формат rtf, какие для этого используются программы. Так как этот файл достаточно распространенный, то существует множество приложений, которые способные его открыть и редактировать. В статье я приведу только несколько самых лучших утилит, которые способны открыть этот тип файла.

Формат Rtf - первое знакомство

В этом формате сохраняются текстовые файлы, которые поддерживают форматированные тексты. В далеком 1982 году программисты компании Microsoft предложили использовать расширение rtf, которое впоследствии, можно было бы форматировать. После этого этот формат файла стал поддерживаться практически всеми графическими процессорами. Самый известный из них это, конечно же, Microsoft Word.

Чем открыть rtf - подборка программ

Как вы уже поняли, для того, чтобы работать с этим файлом нам понадобится текстовый редактор. Так как формат является детищем компании Microsoft, то она позаботилась о своих пользователях и встроила прямо в Windows бесплатный текстовый редактор под названием WordPad, которые работает с этим типом расширений. Но существуют и альтернативные варианты программ. Среди самых продвинутых альтернатив можно отметить:

  • AbiWord
  • OpenOffice

Эти две бесплатные программы с легкостью откроют любой файл с расширение rtf. Все остальные приложения не имеет смысла перечислять, так как процесс открытия у всех них идентичен. Единственное отличие между ними в интерфейсе и настройка. Две вышеприведенные программы являются лидерами ниши бесплатных текстовых процессоров, поэтому рекомендую воспользоваться одной из них.

Extensions are some of the files associated or which can be opened with the Microsoft WordPad. RTF files are text documents that can be created, opened, viewed, edited or changed using word processing applications for both Mac and Microsoft Windows-based computers, like Microsoft WordPad for Windows and Microsoft Word 2011 for Mac. It gives the users a wide cross compatibility support, which was the central objective for the improvement of the Rich Text Format technology, and these .rtf files can even be opened, viewed and used with database applications. The OpenBSD Unix platform is frequently utilized in computers running as Web servers of a secure network. OpenBSD files may be saved in directories of the OpenBSD system that were generated upon installation of the software applications. Files with the .openbsd extension can be opened by standard text editors, particularly well-known like Microsoft Notepad, and this text editor may also be utilized to create and edit OPENBSD files. Files with the .readme extension are text documents engaged to give users with beneficial information and specific details about certain applications installed in the system. These files can be opened, viewed and edited with a selection of text editors including Microsoft Notepad and Microsoft WordPad.

Microsoft Word

Microsoft Word is a word processor program that is packed in the Microsoft Office Suite . It is developed by Microsoft Corporation, generating a .doc file extension when the file is saved. A document file format (.doc) is a text or binary file format for saving documents on a storage media, mainly for computer use, like typing text, charts, tables, page formatting, graphs, images and other documents whose content is created and edited. Contents of these documents are printable in any sizes and are capable to open in other devices provided that its operating system is able to read DOC files. This .doc file extension has become extensive de facto standard for office documents, but it is an owned format and is not always totally supported by other word processors. A variety of programs that is able to open this type of file, and different operating systems and have installed programs that can open a 1ST file are: Microsoft Word, Microsoft Notepad, Microsoft Word, IBM Lotus WordPro, and Corel WordPerfect.

Microsoft Notepad

Microsoft Notepad

Notepad is a basic text editor used to create plain documents. It is commonly used to view or edit text (.txt) files, and a simple tool for creating Web pages, and supports only the basic formatting in HTML documents. It also has a simple built-in logging function. Each time a file that initializes with .log is opened, the program inserts a text timestamp on the last line of the file. It accepts text from the Windows clipboard. This is helpful in stripping embedded font type and style codes from formatted text, such as when copying text from a Web page and pasting into an email message or other “What You See Is What You Get” text editor. The formatted text is temporarily pasted into Notepad, and then immediately copied again in stripped format to be pasted into the other program. Simple text editors like Notepad may be utilized to change text with markup, such as HTML. Early versions of Notepad offered only the most basic functions, such as finding text. Newer versions of Windows include an updated version of Notepad with a search and replace function (Ctrl + H), as well as Ctrl + F for search and similar keyboard shortcuts. It makes use of a built-in window class named edit. In older versions such as Windows 95, Windows 98, Windows Me and Windows 3.1, there is a 64k limit on the size of the file being edited, an operating system limit of the EDIT class.


Microsoft Works

Microsoft Works

Microsoft Works is incorporated package software that was developed by Microsoft. It is less expensive, smaller, and has fewer features than Microsoft Office or other office suites. Its central functionality includes a word processor, a spreadsheet and a database management system. Newer versions have a calendar application and a dictionary while older versions included a terminal emulator. Files with WPS extension is utilized for output files of the Microsoft Works word processing application. These files are classified as text documents that can be created, saved, viewed and edited using the Microsoft Works program. Microsoft Word 2010, Microsoft Publisher 2010, Planamesa NeoOffice, and OxygenOffice Professional are some of the applications that are able to open and view the content of these WPS files. The contents of these WPS files can also be exported to other compatible word document formats. This promotes convenience and efficient document presentation, group collaboration and sharing between users of different systems and word processing applications; however, WPS document cannot be applied with macros and other formatting options available in Microsoft Word; so Microsoft discontinued support and development of the Microsoft Works application with its version 9 and the release of Microsoft Word 2010.

Notepad2

The Notepad2 application is a more advanced text editor for Windows developed by Florian Balmer. This program originated from the original built-in Microsoft Notepad which is why it is also effective and fast even when it is small. Notepad2 also has a lot of features such as syntax highlighting that allows a text or a source code to be displayed using different fonts and colors. This syntax highlighting feature of notepad2 allows users to write programming language easily and distinctly. This amazing function of Notepad2 is also owing to several other features it possess such as auto indentation, regular and expression-based find and replace feature, bracket matching, newline conversion, encoding conversion as well as multiple undo and redo features. These features make the function of the simple Notepad more advanced and it makes Notepad more interesting to use either to open files in .txt format or to write HTML codes. Notepad2 also supports many programming languages such as ASP, C++, Perl, Java, etc.

Что ж продолжим наши изыскания на предмет получения текста из различных форматов данных. Не так давно мы с вами научились вытаскивать текст из zipped-xml-based файлов (odt и docx), а также, в начале этой недели, из pdf . Сегодня мы продолжим с обещанным rtf.

Rich Text Format (он же rtf), вы могли бы подумать, достаточно забытый, хотя и не очень сложный формат представления текстовых данных. Что ж, относительно несложный для получения текста, но за свою историю: от своей первой версии до текущей 1.9.1 - он приобрёл под 300 страниц официально документации и огромное количество надстроек, которые в большей степени нам будут мешать при получении plain text"а. Попробуем их обойти...

А что там внутри?

Как уж повелось давайте заглянем вовнутрь rtf-файла и посмотрим, что там внутри:

Что мы видим? Я вижу наше любимое стихотворение «Парус». Мы видим изначально текстовый 8-битный формат данных. Это уже радует - когда в исходных данных текст, понимать, что происходит, гораздо проще. Теперь давайте разберёмся, как эти самые данные прочитать. Для этого я расскажу немного теории по теме.

Будем считать, что rtf состоит из управляющих слов , которые могут быть сгруппированы во вложенные множества. Управляющие слово начинается на обратный слэш (\), группа обёрнута в фигурные скобки ({ и }).

Управляющие слово состоит из последовательности букв английского алфавита (от a до z) и может быть завершено численным параметром (возможно отрицательным). Как вариант, слово может содержать один не цифро-буквенный ascii-символ. Всё, что не подпадает под эти правила, не является частью управляющего слова. Таким образом, последовательность вида \rtf1\ansi\ansicpg1251 без проблем делится на три слова rtf с параметром 1 (major-версия формата), ansi (текущая кодировка) и ansicpg с параметром 1251 (текущая кодовая страница под номером 1251 - т.е. Windows-1251).

Группированные множества определяют область действия управляющих слов. Таким образом, управляющие слова описанные внутри фигурных скобок работают только внутри них и всех дочерних подмножеств. Для того, чтобы правильно отработать какие слова имеют место сейчас - требуется вести стек управляющих слов. При открытии фигурной скобки создавать новый элемент-массив в стеке, в который сразу же добавлять данные предыдущего слоя стека, при закрытии скобки - удалять самый верхний слой.

Ещё стоит отметить, что некоторые управляющие слова могут быть закрыты с помощью добавления параметра ноль, а не создания новой подгруппы. Например, следующие варианты эквивалентны: This is {\b bold} text , This is \b bold \b0 text = This is bold text .

Откуда брать текст?

С устройством нового для нас формата мы познакомились, теперь зададимся вопросом, а где брать текст. Тут всё не так сложно, как может показаться - текст надо брать там, где текущая последовательность не идентифицируется, как управляющее слово. С парой исключений, естественно.

Во-первых, стоит отметить, что исходная кодировка rtf-файла - это ANSI, поэтому без всякий изысков сохранится только, английский текст. Нас же интересует, как минимум, русский текст, а ещё лучше Unicode, не так ли? Что правда, то правда - rtf хоть и старый формат, но сгодится на сохранение и того и другого.

Итак, в rtf"е есть возможность использования второй половины таблицы ASCII, та что от 128 и выше. С учётом текущей кодировки (выше управляющее слово \ansicpg), конечно же. Для этого в RTF была введена последовательность вида \"hh , где hh - это двоичный hex-код символа из таблицы ASCII.

Ну и второй, более интересный вариант, это unicode-кодированные данные. Для них в формат включено лаконично короткое ключевое слово \uABCD с цифровым параметром ABCD. ABCD в данном случае код unicode-символа в десятичной системе счисления. Всё опять просто, как вы могли заметить.

Просто, да не очень. В rtf существует ещё одно ключевое слово \ucN , которое тесно связано с Unicode. Дело в том, что формат RTF очень рьяно поддерживает совместимость со старыми устройствами, на которых возможно придётся открывать данный файл. Как вариант, подобное устройство (ну например компьютер с Windows 3.11:) не сможет прочитать Unicode, что ему делать? Для этого после каждого unicode-символа, шифрованного ключевым словом \u может быть указано от нуля до нескольких символов, которые должны быть отображены в случае, если rtf-viewer не способен отобразить или разобрать текущие данные (по документации, если просмотрщик не может отобразить верно данные, он должен их пропустить).

В связи с этим, большинство современных редакторов после unicode-управляющего слова ставят символ вопроса, как знак, что требуется показать вместо текущего символа. Но возможны и варианты, например: Lab\u915GValue . Зададимся вопросом - сколько символов требуется отобразить, если нет возможности показать Unicode. Всё опять же не очень сложно - указанное выше ключевое слово \ucN в качестве параметра N как раз и предоставляет это значение. Т.е. перед Unicode-данными обязательно появится что-то типа \uc1 , что скажет нам пропустить один символ после unicode"а.

Давайте почитаем!

Похоже, что накопленных нами данных будет достаточно, чтобы прочитать наши первые rtf-файлы. Поехали:
  1. function rtf_isPlainText($s ) {
  2. $failAt = array ("*" , "fonttbl" , "colortbl" , "datastore" , "themedata" ) ;
  3. for ($i = 0 ; $i < count ($failAt ) ; $i ++ )
  4. if (! empty ($s [ $failAt [ $i ] ] ) ) return false ;
  5. return true ;
  6. function rtf2text($filename ) {
  7. $text = file_get_contents ($filename ) ;
  8. if (! strlen ($text ) )
  9. return "" ;
  10. $document = "" ;
  11. $stack = array () ;
  12. $j = - 1 ;
  13. for ($i = 0 ; $i < strlen ($text ) ; $i ++ ) {
  14. $c = $text [ $i ] ;
  15. switch ($c ) {
  16. case "\\ " :
  17. $nc = $text [ $i + 1 ] ;
  18. if ($nc == "\\" && rtf_isPlainText($stack [ $j ] ) ) $document .= "\\" ;
  19. elseif ($nc == "~" && rtf_isPlainText($stack [ $j ] ) ) $document .= " " ;
  20. elseif ($nc == "_" && rtf_isPlainText($stack [ $j ] ) ) $document .= "-" ;
  21. elseif ($nc == "*" ) $stack [ $j ] [ "*" ] = true ;
  22. elseif ($nc == """ ) {
  23. $hex = substr ($text , $i + 2 , 2 ) ;
  24. $document .= html_entity_decode ("" . hexdec ($hex ) . ";" ) ;
  25. $i += 2 ;
  26. } elseif ($nc >= "a" && $nc <= "z" || $nc >= "A" && $nc <= "Z" ) {
  27. $word = "" ;
  28. $param = null ;
  29. for ($k = $i + 1 , $m = 0 ; $k < strlen ($text ) ; $k ++, $m ++ ) {
  30. $nc = $text [ $k ] ;
  31. if ($nc >= "a" && $nc <= "z" || $nc >= "A" && $nc <= "Z" ) {
  32. if (empty ($param ) )
  33. $word .= $nc ;
  34. else
  35. break ;
  36. } elseif ($nc >= "0" && $nc <= "9" )
  37. $param .= $nc ;
  38. elseif ($nc == "-" ) {
  39. if (empty ($param ) )
  40. $param .= $nc ;
  41. else
  42. break ;
  43. } else
  44. break ;
  45. $i += $m - 1 ;
  46. $toText = "" ;
  47. switch (strtolower ($word ) ) {
  48. case "u" :
  49. $toText .= html_entity_decode ("" . dechex ($param ) . ";" ) ;
  50. $ucDelta = @ $stack [ $j ] [ "uc" ] ;
  51. if ($ucDelta > 0 )
  52. $i += $ucDelta ;
  53. break ;
  54. case "par" : case "page" : case "column" : case "line" : case "lbr" :
  55. $toText .= "\n " ;
  56. break ;
  57. case "emspace" : case "enspace" : case "qmspace" :
  58. $toText .= " " ;
  59. break ;
  60. case "tab" : $toText .= "\t " ; break ;
  61. case "chdate" : $toText .= date ("m.d.Y" ) ; break ;
  62. case "chdpl" : $toText .= date ("l, j F Y" ) ; break ;
  63. case "chdpa" : $toText .= date ("D, j M Y" ) ; break ;
  64. case "chtime" : $toText .= date ("H:i:s" ) ; break ;
  65. case "emdash" : $toText .= html_entity_decode ("—" ) ; break ;
  66. case "endash" : $toText .= html_entity_decode ("-" ) ; break ;
  67. case "bullet" : $toText .= html_entity_decode ("•" ) ; break ;
  68. case "lquote" : $toText .= html_entity_decode ("‘" ) ; break ;
  69. case "rquote" : $toText .= html_entity_decode ("’" ) ; break ;
  70. case "ldblquote" : $toText .= html_entity_decode ("«" ) ; break ;
  71. case "rdblquote" : $toText .= html_entity_decode ("»" ) ; break ;
  72. default :
  73. $stack [ $j ] [ strtolower ($word ) ] = empty ($param ) ? true : $param ;
  74. break ;
  75. if (rtf_isPlainText($stack [ $j ] ) )
  76. $document .= $toText ;
  77. $i ++;
  78. break ;
  79. case "{" :
  80. array_push ($stack , $stack [ $j ++ ] ) ;
  81. break ;
  82. case "}" :
  83. array_pop ($stack ) ;
  84. $j --;
  85. break ;
  86. case "\0" : case "\r" : case "\f" : case "\n" : break ;
  87. default :
  88. if (rtf_isPlainText($stack [ $j ] ) )
  89. $document .= $c ;
  90. break ;
  91. return $document ;
Код с комментариями вы можете получить на

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

Немножко истории

Дело было в старину, в 1982-м году. В те далёкие времена, когда фирмы Microsoft и Adobe дружили. Им понадобилось придумать что-нибудь для новой программы - текстового процессора Word для MS DOS, выпуск которого был запланирован на 1893-й.

Недолго думая, взяли обычный текст и добавили к нему специальные тэги разметки (их нарекли управляющими символами). Мол, вот тут будет начинаться абзац, здесь текст следует отображать курсивом, там - полужирным, ну и так далее.

С тех пор много чего изменилось, но суть осталась прежней: RTF - это текстовые файлы, подобно документам HTML. Их можно открывать в текстовых редакторах вроде Блокнота в Windows и Gedit в Ubuntu, чтобы посмотреть на все те тэги, ежели возникнет желание.

Вскоре пути Microsoft и Adobe разошлись, но формат остался проприетарным. (Adobe решили использовать концепцию для другого языка разметки, PostScript, что позже привело к появлению PDF .) Ну а Microsoft выпустили последнюю спецификацию RTF в марте 2008-го. На неё и ориентируется современный электронно-цифровой мир.

Суть вкратце

Структура документа RTF довольно проста. В начале текстового блока указывается управляющий символ, перед которым ставится «\» (в смысле, черта, наклонённая влево). В частности, \b перед блоком полужирного шрифта, \i перед курсивом, \par перед абзацем.

Для обозначения самих блоков, поскольку нет закрывающих тэгов, применяются фигурные скобки {}. Следовательно, выделенное полужирным в исходном тексте выглядит вот так: {\b выделенное полужирным} , а курсивом - вот так: {\i привет, мир!} Ну а в самом начале указывается сам формат \rtf1:

{\rtf1 \par {\i Привет, мир!} Только что было приветствие курсивом. А теперь {/b немножко полужирного текста}. \par }

Это, конечно, очень простой пример. На самом деле через косые линии в ряд выстраивается изрядное количество всяких параметров: кодировка, язык и прочие данные. Что-нибудь вроде:

{\rtf1\ansi\deff3\adeflang1025 {\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;} \par {\i Привет, мир, ещё раз!} Как видите, абракадабры {/b предостаточно} даже в маленьком фрагменте. \par }

Особенно много управляющих символов любят вставлять мощные текстовые процессоры вроде того же Word или LibreOffice Writer, размечая всё слишком уж дотошно.

Кроме того, русские буквы заменяются обозначениями байтов - символов кодировки (в примерах ради наглядности замена не показана). Это делает исходный код совершенно непригодным для чтения и раздувает его непомерно.

Софт

Кроме упомянутых выше Microsoft Word и LibreOffice Writer, существует множество менее мощных программ, RTF-редакторов. Однако далеко не все из них пригодны для работы.

FocusWriter - пожалуй, самый лучший из нынешних свободных RTF-редакторов. Можно прикручивать словари для проверки орфографии, используемые в LibreOffice Writer. И в Windows, и в Ubuntu работает очень шустро, занимает мало места и системные ресурсы не пожирает. Оформление интерфейса меняется на разные вкусы.

Упрямо запоминает и пытается при старте загрузить последний открывавшийся документ - пожалуй, это всё же недостаток. Предназначен, в первую очередь, для писателей , работающих над одной книгой, а не над несколькими сразу. В соответствии с той же концепцией панель инструментов прячется до наведения указателя мыши, чтобы ничто от работы не отвлекало.

Зато такой интерфейс очень удобен на нетбуках и прочих устройствах с небольшим дисплеем. Писать статьи, письма и всякие заметки - одно удовольствие.

Зачем нужен RTF

Во-первых, текстовые файлы не заражаются вирусами, и в них невозможно запихнуть вредоносные макросы. Файлы *rtf совершенно безопасны, как и *txt. А вот *doc вполне способны преподнести неприятные сюрпризы.

Во-вторых, Rich Text Format понимают все современные текстовые процессоры и, конечно, RTF-редакторы во всех популярных операционных системах.

Ваш покорный слуга собственными глазами видел, как Word 2010 в Windows 7 наотрез отказался открывать *odt, изготовленный в LibreOffice. Сказал, мол, в файле содержится какая-то ошибка. Пришлось нести флэшку обратно на компьютер с Ubuntu (благо таковой находился в соседнем офисе) и конвертировать документ в RTF. После чего Word открыл файл без возражений.

Как с этим жить

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

Предположим, во время работы в Ubuntu вам нужно быстро сохранить небольшой текст, который потом понадобится открыть в Windows. Если вы создадите *txt в Gedit, то Блокнот, вполне вероятно, вместо букв покажет нечто инопланетное, не распознав кодировку автоматически.

Но если вы используете шустрый FocusWriter и изготовите *rtf, проблем не возникнет, всё отобразится нормально. Кодировка будет указана в исходном коде после \rtf1 .

Резюмируем

Итак, Rich Text Format (он же RTF) отличается универсальностью и потому пригоден для создания и открытия оформленных текстов в разных операционных системах. Однако его лучше использовать только для небольших русскоязычных документов. Для англоязычных (и прочих с латинскими буквами) проблемы раздувания файлов нет.

В жизни всякое бывает, и если вдруг понадобится открыть документы в пока ещё популярной Windows, то на этот случай важные файлы, которые вы в Ubuntu держите в *odt, можно продублировать в *rtf. Потому что на компьютерах с ОС от Microsoft нередко присутствует Word, а не LibreOffice Writer.

Предыдущие публикации: