Скачать программу для открытия rtf. Чем открыть формат rtf - простые советы

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

Впрочем, в этой связи куда более интересен rtf-формат, который в большинстве случаев может позиционироваться как универсальное средство передачи информации. Кстати, а чем он так хорош? Почему бы не использовать doc?

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

Но даже не за это rtf-формат так любят пользователи. В отличие от вышеупомянутого doc, а также docx, odt и прочих подобных файлов, в нем может содержаться только текст. Неопытные пользователи могут решить, что и во всех вышеперечисленных разновидностях текстовых документов нет ничего другого, но это не так. Дело в том, что в том же любимом нашими отечественными пользователями офисном формате doc могут находиться макросы. По сути, это самые настоящие программы, которые могут быть использованы злоумышленниками в далеко не благих целях.

Именно на них приходится немалая часть заражений, происходящих в момент запуска скачанных из интернета текстовых документов. Используя же rtf-формат, вы фактически ничем не рискуете. Но есть у него и определенные недостатки, которые также нужно принимать во внимание, выполняя сохранение своей работы. К примеру, чтобы преобразовать rtf-формат в txt, все равно придется воспользоваться каким-либо офисным приложением. Но это особой проблемы не представляет.

К примеру, невозможно использовать для создания динамически связанных документов. Внедрение объектов в документ-приемник приводит к значительному увеличению размера последнего. В связи с этим иногда используется способ, при котором устанавливается только связь с исходником. При этом объект хотя и отображается в документе-приемнике, но не сохраняется в нем, так как внутри документа имеется лишь ссылка на исходный файл или объект. А потому не вставляйте особенно большие картинки в rtf-формат.

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

Надеяться на OpenSource продукты не стоит, так как на данный момент Microsoft (а именно эта компания является создателем формата), выложила в открытый доступ только первичные версии rtf.

Данный формат был определен фирмой Microsoft как стандартный формат для обмена текстовыми документами. Следовательно, по назначению этот формат подобен SYLK-формату для электронных таблиц. RTF поддерживается многими продуктами фирмы Microsoft. Так, например, начиная с версии 2.0, он введен в Windows в качестве Clipboard-формата, благодаря чему возможен обмен данными между различными прикладными программами Windows. Кроме того, RT-формат поддерживается программами WORD для Macintosh, начиная с версии 3.X, и WORD для PC, начиная с версии 4. X.

В RTF для обмена документами используются только представимые символами коды из ASCII-, MAC- и PC-символьного набора. Кроме текста, файл в RT-формате в читаемой форме содержит команды управления.

Документ состоит преимущественно из команд управления настройки программы чтения файлов в RTF-формате. Эти команды можно разделить на управляющие слова (control words) и управляющие символы (control symbols).

Управляющее слово представляет собой последовательность символов с разделителем (delimiter) в конце:

\lettersequence

Перед управляющим словом вводится обратная косая черта "\" (backslash). В качестве разделяющих могут использоваться следующие символы:

  • Пробел (space), причем этот символ относится к управляющему слову;
  • Цифра или знак "-". После этих символов должен следовать параметр с разделителем. В качестве разделителя может быть использован пробел или другие символы, кроме цифр и букв;
  • Все символы, отличные от цифр и букв. Эти символы не относятся к управляющему слову .

В RT-формате для задания управляющей последовательности используются буквы от "А" до "Z" и от "а" до "z", а также цифры от "0" до "9". Национальные символы к управляющей информации не относятся.

В качестве, управляющих символов используются отдельные буквы. Перед каждым управляющим символом вводится обратная косая черта "\":

\control symbol

В настоящее время определены только некоторые из этих символов. Поэтому при чтении неизвестные символы могут быть пропущены.

В RT-формате существует возможность объединять отдельные последовательности в группы при помощи скобок:

{ начало группы } конец группы

Такие группы создаются, например, при описании сносок, колонтитулов и т.п. Если необходимо разместить символы "\", "{" или "}" внутри обычного текста, то перед ними надлежит поставить обратную косую черту:

\\ \{ \}.

Это позволяет программе, читающей RTF-последовательность, распознать, что символ не следует интерпретировать как управляющий.

В RT-формате используются также некоторые символьные коды для управления печатью

Символы CR и LF, расположенные внутри текста, будут пропущены. Microsoft использует эти символы для большей наглядности при представлении RTF-файла. Внутри управляющих слов символы CR и LF могут иметь особое значение, подробнее об этом будет сказано при описании команд.

Специальные управляющие слова (special control words)

В RTF имеются управляющие слова специального назначения. Рассмотрим кратко эти слова и их назначение.

Управляющее слово change page number выводит текущий номер страницы.

Управляющее слово change footnote активизирует автоматическую нумерацию сносок.

С помощью change date можно вывести текущую дату.

С помощью change time можно вывести текущее время.

\chftnsep

Свидетельствует об изменении линии, отделяющей сноски от текста.

С помощью данной последовательности вводится текст формулы.

Обозначает подпункт индекса.

Текст может быть пропущен при чтении RTF-формата.

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

Символ обозначает мягкий перенос (nonrequired hyphen).

Символ обозначает неразрываемый перенос (nonbreaking hyphen), на месте которого слово не может быть разделено.

Последовательность позволяет прямой ввод в тексте шестнадцатеричных чисел. Они задаются вместо символов hh.

Данная последовательность задает переход на новую страницу.

Эта последовательность вызывает переход на новую строку в тексте.

С помощью данной последовательности в тексте отмечается конец абзаца. Последовательность \раr может заменяться последовательностью \10 или \13. При этом \10 соответствует ASCII-символу с кодом 10 (carriage return). Непосредственно ввести ASCII-код 10 (CR) нельзя, т.к. он игнорируется программой чтения.

Эта последовательность обозначает конец текстового фрагмента или текстового абзаца.

Данная последовательность заменяет табулятор. Можно также непосредственно задавать ASCII-код 09Н.

Конец таблицы (столбец).

Конец таблицы (строка).

Операторы настройки (destination control words)

С помощью описанных ниже управляющих слов можно произвести основную настройку программы чтения RTF. Они могут встречаться только в начале документа или в начале группы. Все операторы вместе с параметрами должны быть заключены в скобки, например:

{\rtf0\pc.......}

Ниже описан формат некоторых операторов.

\rtf <параметр>

Задает метку начала файла. В качестве параметра программа, при помощи которой создается файл, может указывать номер версии. Например:

{\rtf0.......}

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

Установка вида кодировки для сохраняемого текста осуществляется с помощью следующих операторов:

  • \ansi: текст хранится в стандартном ASCII-формате. Этот формат используется, например, в Windows.
  • \mac:. текст хранится в кодировке Macintosh
  • \рс: для вывода текста используется кодировка символов IBM-PC.
  • \рса: IBM-PC Code Page 850 (модель PS\2).

Для передачи текстов между различными системами должна использоваться кодировка \ansi.

\colortbl

Windows и другие программы пользуются палитрами для определения используемых цветов. Чаще всего палитра состоит из 16 различных цветов, получаемых путем комбинации основных цветов - красного, зеленого и синего. Команда \colortbl позволяет изменить отдельные определения в палитре. Для каждого цвета в таблице указывается величина красной, зеленой и синей составляющей. Каждый цвет описывается тремя параметрами:

\red000 \green000 \blue000

Вместо 000 указывается величина доли цвета в диапазоне от 0 до 255. Пример: в таблице, состоящей из 16 цветов, должны быть заново определены цвета 0-й и 2-й. Для переопределения цветов может быть задана следующая последовательность:

{ \colortbl \red128\green64\blue128\;;\red0\green64\blue128; }

Определение цвета завершается точкой с запятой. Поскольку 1-й цвет остается без изменений, в последовательности два символа ";" следуют один за другим. Последовательность завершается закрывающей скобкой.

Оператор \cfn определяет цвет фона (при стандартной настройке n=0), а оператор \cbn - цвет символа (при стандартной настройке n=0).

\fonttbl

Данный оператор используется для построения таблицы шрифтов и соотносит имя шрифта (группы шрифтов) с номером шрифта. При определении шрифта можно использовать следующие операторы:

  • \fnil: имя группы шрифтов неизвестно. При выводе должен использоваться стандартный шрифт.
  • \froman: должны использоваться шрифты группы Roman (например, Times Roman)
  • \fswiss: этот оператор предписывает использование шрифтов из группы Swiss (Helvetica, Swiss и т.д.)
  • \fmodern: могут использоваться шрифты Pica, Elite и Courier.
  • \fscript: используются курсивные шрифты группы Script.
  • \fdecor: при указании этого оператора шрифты должны выбираться из группы Decor (Old English и т.д.).
  • \ftech: выбор группы шрифтов с техническими и математическими символами (SYMBOL и т.д.).

Команда для создания группы шрифтов может состоять из таких операторов:

{\fonttbl\f0\fnil default;} {\fl\froman roman h;} {\f2\fswiss helvetica;}

После ключевого слова \fonttbl следует первый номер шрифта \f0. Далее идет определение группы шрифтов. Здесь после номера 0 указано \fnil, т.е. имя группы неизвестно. Следующий параметр обозначает имя выбираемого шрифта (например, roman h). Указание default говорит считывающей программе о том, что следует использовать стандартный шрифт. После имени шрифта стоит точка с запятой. В приведенном примере определены только шрифты с номерами 1 и 2. Вся последовательность может быть объединена фигурными скобками в группу.

Таблица шрифтов должна быть заполнена значениями до того, как встретится оператор \stylesheet или текст. Стандартный шрифт вводится оператором \deffn.

\stylesheet

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

  • \sbasedon000: вместо символов 000 указывается номер вида шрифта, который используется в качестве текущего.
  • \snext000: назначает номер следующего вида шрифта (style), который - станет текущим.

Оператор может иметь, например, следующий вид:

{\stylesheet\s0\f3\fs20\qj Normal;} {\sl\f3\fs30\b\qc Heading Level 3;}

Шрифты нумеруются числами от 0 до n (\s0... ). В первой строке стилю абзаца 0 (\s0 ) предписывается имя Normal. Вывод текста выполняется шрифтом 3 (\f3 ), размером 10 пунктов (\fs20 ). Параметр \qj говорит о том, что надпись должна выравниваться по формату. Вторая строка определяет стиль шрифта 1, который получает имя Heading Level 3 . Шрифт имеет размер 15 пунктов, жирное начертание (= bold ) и при выводе надпись центрируется (\qc ).

\pict

Этот оператор используется при описании рисунка в формате битовой карты (bitmap). Следующие параметры содержат описание рисунка в виде шестнадцатеричных значений. Параметры могут быть выборочно использованы для определения геометрии рисунка или его формата:

  • \pich000: оператор указывает высоту рисунка в пикселях. Вместо трех нулей подставляется числовое значение. Если оператор отсутствует, высота рисунка определяется из текущих графических данных. С помощью параметра можно задать для рисунка определенную высоту.
  • \piw000: оператор задает ширину рисунка в пикселях. Справедливо все, сказанное о предыдущем операторе.
  • \picscaled: с помощью этого оператора рисунок масштабируется таким образом, чтобы он точно заполнял отведенную для него область.
  • \wmetafilen: параметр указывает, что данные хранятся в формате Windows-метафайла. Параметр n определяет тип метафайла (1 = ММ-текст).
  • \macpict: параметр указывает, что данные хранятся в Macintosh-формате Quick-Draw.
  • \bin000:. параметр определяет количество байтов. Вместо трех нулей записывается шестнадцатеричное число.
  • \wbitmapn: параметр определяет формат bitmap-рисунка. Параметр n задает тип (0 соответствует логической битовой карте).
  • \brdrs: определяет простую рамку для рисунка
  • \brdrdb: определяет двойную рамку для рисунка.
  • \brdrth: определяет жирную линию для рамки рисунка.
  • \brdrsh: определяет затененную рамку для рисунка
  • \brdrdot: определяет для рисунка пунктирную линию.
  • \brdrhair: определяет тонкую линию для рамки рисунка.
  • \picwGoaln: задает желаемую ширину рисунка в twips
  • \pichGoaln: задает желаемую высоту рисунка в twips.
  • \picscalexn: задает горизонтальное масштабирование (n может принимать значения от 1 до 100, по умолчанию -10).
  • \picscaleyn: задает вертикальное масштабирование (n может принимать значения от 1 до 100, по умолчанию - 10).
  • \piccroptn: описывает верхнее поле рисунка в twips. При положительных значениях параметра n верхняя часть рисунка обрезается. Отрицательные значения n дают возможность построить вокруг рисунка рамку. Стандартное значение n равно 0.
  • \рiccrорbп: описывает нижнее поле рисунка в twips. При положительных значениях параметра n нижняя часть рисунка обрезается. Отрицательные значения n дают возможность построить вокруг рисунка рамку. Стандартное значение n равно 0.
  • \рiссrорrn: описывает правое поле рисунка в twips. При положительных значениях параметра n рисунок обрезается справа. Отрицательные значения n дают возможность построить вокруг рисунка рамку. Стандартное значение n равно 0.
  • \piccropln: описывает левое поле рисунка в twips. При положительных значениях параметра п рисунок обрезается слева. Отрицательные значения п дают возможность построить вокруг рисунка рамку. Стандартное значение п равно 0.
  • \wbmbitspixeln: определяет количество битов, приходящихся на пиксел, для bitmap-рисунка (стандартное значение равно 1).
  • \wbmplanesn: определяет количество битовых плоскостей (стандартное значение равно 1).
  • \wbmwidtbbytesn: определяет длину битовой карты в байтах

Главный писатель по вопросам технологий

Вам кто-то послал по электронной почте файл RTF, и вы не знаете, как его открыть? Может быть, вы нашли файл RTF на вашем компьютере и вас заинтересовало, что это за файл? Windows может сказать вам, что вы не можете открыть его, или, в худшем случае, вы можете столкнуться с соответствующим сообщением об ошибке, связанным с файлом RTF.

До того, как вы сможете открыть файл RTF, вам необходимо выяснить, к какому виду файла относится расширения файла RTF.

Tip: Incorrect RTF file association errors can be a symptom of other underlying issues within your Windows operating system. These invalid entries can also produce associated symptoms such as slow Windows startups, computer freezes, and other PC performance issues. Therefore, it highly recommended that you scan your Windows registry for invalid file associations and other issues related to a fragmented registry.

Ответ:

Файлы RTF имеют Текстовые файлы, который преимущественно ассоциирован с Rich Text Format File.

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

Как открыть ваш файл RTF:

Самый быстрый и легкий способ открыть свой файл RTF - это два раза щелкнуть по нему мышью. В данном случае система Windows сама выберет необходимую программу для открытия вашего файла RTF.

В случае, если ваш файл RTF не открывается, весьма вероятно, что на вашем ПК не установлена необходимая прикладная программа для просмотра или редактирования файлов с расширениями RTF.

Если ваш ПК открывает файл RTF, но в неверной программе, вам потребуется изменить настройки ассоциации файлов в вашем реестре Windows. Другими словами, Windows ассоциирует расширения файлов RTF с неверной программой.

Установить необязательные продукты - FileViewPro (Solvusoft) | | | |

RTF Multipurpose Internet Mail Extensions (MIME):

  • mime application/rtf
  • mime text/richtext
  • mime text/rtf

RTF Инструмент анализа файлов™

Вы не уверены, какой тип у файла RTF? Хотите получить точную информацию о файле, его создателе и как его можно открыть?

Теперь можно мгновенно получить всю необходимую информацию о файле RTF!

Революционный RTF Инструмент анализа файлов™ сканирует, анализирует и сообщает подробную информацию о файле RTF. Наш алгоритм (ожидается выдача патента) быстро проанализирует файл и через несколько секунд предоставит подробную информацию в наглядном и легко читаемом формате.†

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

Чтобы начать бесплатный анализ файла, просто перетащите ваш файл RTF внутрь пунктирной линии ниже или нажмите «Просмотреть мой компьютер» и выберите файл. Отчет об анализе файла RTF будет показан внизу, прямо в окне браузера.

Перетащите файл RTF сюда для начала анализа

Просмотреть мой компьютер »

Пожалуйста, также проверьте мой файл на вирусы

Ваш файл анализируется... пожалуйста подождите.

Что ж продолжим наши изыскания на предмет получения текста из различных форматов данных. Не так давно мы с вами научились вытаскивать текст из 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) – текстовый формат, который является более продвинутым в сравнении с обычным TXT. Целью разработчиков было создать формат, удобный для чтения документов и электронных книг. Это удалось достичь благодаря внедрению поддержки мета-тегов. Выясним, какие программы умеют оперировать объектами с расширением RTF.

Работу с Rich Text Format поддерживают три группы приложений:

  • текстовые процессоры, включенные в состав ряда офисных пакетов;
  • софт для чтения электронных книг (так называемые «читалки»);
  • текстовые редакторы.

Кроме того, объекты с данным расширением умеют открывать некоторые универсальные просмотрщики.

Способ 1: Microsoft Word

Если у вас на компьютере установлен офисный пакет Microsoft Office, то содержимое RTF без проблем можно отобразить с помощью текстового процессора Word.


В целом Word очень корректно работает с форматом RTF, правильно отображая все объекты, к которым применены мета-теги в документе. Но это и не удивительно, так как разработчик у программы и у данного формата один и тот же – компания Microsoft. Что же касается ограничения по редактированию документов RTF в Ворде, то это скорее проблема самого формата, а не программы, так как он просто не поддерживает некоторые продвинутые возможности, которые, например, используются в формате DOCX. Главный же недостаток Word в том, что указанный текстовый редактор является частью платного офисного пакета Microsoft Office.

Способ 2: LibreOffice Writer

Следующим текстовым процессором, умеющим работать с RTF, является Writer, который входит в свободный пакет офисных приложений LibreOffice.


Существует и альтернативный вариант запуска текстового документа в стартовом окне LibreOffice.


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

Есть также варианты открытия текста не через стартовое окошко LibreOffice, а уже через интерфейс самого приложения Writer.


Как видим, LibreOffice Writer предоставляет больше вариантов открытия текста, чем Ворд. Но, в то же время, нужно заметить, что при отображении текста данного формата в LibreOffice, некоторые пробелы помечаются серым цветом, что может мешать при чтении. Кроме того, книжный вид Libre уступает по удобству вордовскому режиму чтения. В частности, в режиме «Книжный вид» не убираются ненужные инструменты. Но безусловное преимущество приложения Writer – это то, что им можно пользоваться абсолютно бесплатно, в отличие от приложения Microsoft Office.

Способ 3: OpenOffice Writer

Ещё одной бесплатной альтернативой Ворду при открытии RTF является применение приложения OpenOffice Writer, которое входит в другой бесплатный пакет офисного софта – Apache OpenOffice.


Существует вариант запуска из стартового окошка пакета OpenOffice.


Есть также возможность запустить документ перетаскиванием из Проводника в стартовое окно OpenOffice тем же способом, что и для LibreOffice.

Процедура открытия также осуществляется через интерфейс Writer.


Собственно, все преимущества и недостатки у OpenOffice Writer при работе с RTF те же, что и у LibreOffice Writer: программа уступает в визуальном отображении содержимого Ворду, но в то же время является, в отличие от него, бесплатной. В целом же офисный пакет LibreOffice считается на данный момент более современным и продвинутым, чем его основной конкурент среди бесплатных аналогов — Apache OpenOffice.

Способ 4: WordPad

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

Но в Windows существует встроенный текстовый редактор, который успешно справляется с отображением информации в формате RTF. Он называется WordPad. Более того, формат RTF является для него основным, так как по умолчанию программа сохраняет файлы именно с данным расширением. Посмотрим, как можно отобразить текст указанного формата в стандартной программе Windows WordPad.


Дело в том, что в реестре Виндовс именно WordPad прописан, как софт по умолчанию для открытия данного формата. Поэтому, если корректировки в настройки системы не вносились, то указанным путем текст откроется именно в WordPad. Если же изменения производились, то документ запустится с помощью того софта, который назначен по умолчанию для его открытия.

Существует возможность запустить RTF также из интерфейса WordPad.


Конечно, по возможностям отображения содержимого WordPad значительно уступает всем текстовым процессорам, которые были перечислены выше:

  • Данная программа, в отличие от них, не поддерживает работу с изображениями, которые могут быть вмонтированы в документ;
  • Она не разбивает текст на страницы, а представляет его цельной лентой;
  • В приложении отсутствует отдельный режим чтения.

Но в то же время WordPad имеет одно важное преимущество перед указанными выше программами: его не нужно инсталлировать, так как он входит в базовый вариант Windows. Ещё одним преимуществом является то, что, в отличие от предыдущих программ, для того, чтобы запустить RTF в WordPad, по умолчанию достаточно просто кликнуть по объекту в проводнике.

Способ 5: CoolReader

Открывать RTF могут не только текстовые процессоры и редакторы, но и читалки, то есть, софт, предназначенный исключительно для чтения, а не для редактирования текста. Одной из наиболее востребованных программ данного класса является CoolReader.


В целом CoolReader довольно корректно отображает форматирование содержимого RTF. Интерфейс данного приложения более удобен для чтения, чем у текстовых процессоров и, тем более, текстовых редакторов, описанных нами выше. В то же время, в отличие от предыдущих программ, в CoolReader невозможно производить редактирование текста.

Способ 6: AlReader

Ещё одна читалка, поддерживающая работу с RTF — AlReader.


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

Способ 7: ICE Book Reader

Следующей читалкой, поддерживающей описываемый формат, является ICE Book Reader. Правда, она больше заточена под создание библиотеки электронных книг. Поэтому и открытие объектов в ней принципиально отличается от всех предыдущих приложений. Напрямую файл запустить не получится. Его сначала нужно будет импортировать во внутреннюю библиотеку ICE Book Reader, а уже после этого произвести открытие.

  1. Активируйте ICE Book Reader. Щелкните по значку «Библиотека» , который представлен иконкой в форме папки на верхней горизонтальной панели.
  2. После запуска окна библиотеки щелкните «Файл» . Выберите .

    Иной вариант: в окне библиотеки щелкните по иконке «Импортировать текст из файла» в форме значка «плюс».

  3. В запущенном окне перейдите в ту папку, где расположен текстовый документ, который требуется импортировать. Произведите его выделение и нажмите «OK» .
  4. Содержимое будет импортировано в библиотеку ICE Book Reader. Как видим, название целевого текстового объекта добавлено в список библиотеки. Чтобы начать читать данную книгу, кликните двойным щелчком левой кнопки мыши по наименованию данного объекта в окошке библиотеки либо нажмите Enter после его выделения.

    Также можно выделить этот объект, щелкнуть «Файл» и далее выбрать «Читать книгу» .

    Ещё один вариант: после выделения имени книги в окне библиотеки щелкните по значку «Читать книгу» в форме стрелки на панели инструментов.

  5. При любом из перечисленных действий текст отобразится в ICE Book Reader.

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

Способ 8: Universal Viewer

Также с файлами RTF умеют работать многие универсальные просмотрщики. Это такие программы, которые поддерживают просмотр абсолютно разных групп объектов: видео, аудио, текст, таблицы, изображения и т.д. Одним из таких приложений является Universal Viewer.


Существует также другой вариант.


Universal Viewer отображает содержимое объектов RTF в стиле похожем на стиль отображения в текстовых процессорах. Как и большинство других универсальных программ, данное приложение поддерживает не все стандарты отдельных форматов, что может приводить к ошибкам отображения некоторых символов. Поэтому Universal Viewer рекомендуется использовать для общего ознакомления с содержимым файла, а не для чтения книги.

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

Так, если объект требуется отредактировать, то лучше всего использовать текстовые процессоры: Microsoft Word, LibreOffice Writer или OpenOffice Writer. Причем первый вариант предпочтительней. Для чтения книг лучше использовать программы-читалки: CoolReader, AlReader и др. Если кроме этого вы ведете свою библиотеку, то тут подойдет ICE Book Reader. Если вам нужно прочитать или отредактировать RTF, но при этом вы не желаете устанавливать дополнительное ПО, то воспользуйтесь встроенным текстовым редактором Windows WordPad. Наконец, если вы не знаете, с помощью какого приложения запустить файл данного формата, то можете воспользоваться одним из универсальных просмотрщиков (например, Universal Viewer). Хотя, ознакомившись с данной статьей, вы уже в курсе, чем именно открывать RTF.