В текстовом редакторе откройте цветной rtf-файл

Обновлено: 24.11.2024

Что есть на этой странице

.RTF вариант №

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

Краткая история формата файла RTF

С момента публикации формат файла RTF претерпел несколько изменений. Его официальная версия для чтения/записи была опубликована как часть Microsoft Word 3.0 для Macintosh со спецификациями версии 1.0. Окончательная версия спецификаций 1.9.1 была опубликована Microsoft в марте 2008 г. После этого в спецификации больше не вносились улучшения. В настоящее время почти все операционные системы имеют более многофункциональные приложения, в которых сведено к минимуму или исключено использование формата файлов RTF.

Спецификации формата файла RTF

RTF служит стандартом передачи данных между программным обеспечением для обработки текстов и передачи контента из одной операционной системы в другую. Это достигается с помощью контрольных слов, которые были введены в Microsoft Office Word до 2007 года. Стандартный файл RTF состоит из ASCII для представления форматированного текста и символов, отличных от ASCII, которые преобразуются в соответствующие кодовые значения. Более новые версии Word могут читать RTF-файлы, созданные в предыдущих версиях, тогда как более старые версии игнорируют управляющие слова и группы, которые не понимают.

Понимание основ RTF

Файлы RTF используют 7-битный простой текст ASCII, состоящий из:

  • управляющие слова
  • символы управления и
  • группы.

Они служат строительными блоками для представления данных RTF в виде понятного текста и кодировки символов.

Контрольное слово

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

Каждое управляющее слово чувствительно к регистру и начинается с обратной косой черты. Последовательность букв ASCII может содержать алфавиты ASCII (от a до z и от A до Z). Отмечает конец имени управляющего слова и может быть одним из следующих:

  • Пространство. Это служит только для разграничения управляющего слова и игнорируется при последующей обработке.
  • Числовая цифра или знак минус ASCII, указывающий на то, что числовой параметр связан с управляющим словом. Затем последующая цифровая последовательность ограничивается любым символом, кроме цифры ASCII (обычно это другое управляющее слово, начинающееся с обратной косой черты). Параметр может быть положительным или отрицательным десятичным числом. Диапазон значений числа номинально составляет от –32768 до 32767, т. е. 16-разрядное целое число со знаком. Небольшое количество управляющих слов принимает значения в диапазоне от -2 147 483 648 до 2 147 483 647 (32-битное целое число со знаком). Эти контрольные слова включают \binN, \revdttmN//, связанные с \rsidN управляющие слова и некоторые свойства изображения, такие как \bliptagN. Здесь N обозначает числовой параметр. Синтаксический анализатор RTF должен допускать до 10 цифр, которым может предшествовать знак минус. Если разделителем является пробел, он отбрасывается, то есть не включается в последующую обработку.
  • Любой символ, кроме буквы или цифры. В этом случае символ-разделитель завершает контрольное слово и не является его частью. Например, обратная косая черта «\», означающая, что следует новое управляющее слово или управляющий символ.
Символ управления

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

Группа

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

Структура файла RTF

Файл RTF имеет следующий стандартный синтаксис:

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

Заголовок RTF

Заголовок RTF имеет следующее представление.

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

RTF-версия

Документ RTF должен начинаться с этих шести символов:

где 1 показывает номер версии RTF.

Набор символов

\ansi — документ имеет набор символов ANSI, также известный как кодовая страница 1252, обычный набор символов MSWindows.

\mac — документ имеет набор символов MacAscii, обычный набор символов в старых (до 10) версиях Mac OS.

\pc — документ находится в кодовой странице DOS 437, наборе символов по умолчанию для MS-DOS. Машинистки с хорошей мышечной памятью заметят, что этот набор символов до сих пор используется для интерпретации цифровых кодов «Alt», т.е. 130 в CP437 — это é. Это единственное применение, которое CP437 видит в наши дни.

\pca — документ находится в кодовой странице DOS 850, также известной как многоязычная кодовая страница MS-DOS.

Команда шрифта

За определением набора символов следует команда \deffN. Это определяет, что номер шрифта N является шрифтом по умолчанию для этого документа. Номер шрифта N берется из таблицы шрифтов. Команда \deffN технически необязательна, но она должна быть на всякий случай, поскольку общий пролог, например следующий, выбирает шрифт 0 в качестве шрифта по умолчанию.

Таблица шрифтов

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

Синтаксис таблицы шрифтов , в котором каждое объявление имеет следующий базовый синтаксис:

Таблица шрифтов с четырьмя объявлениями выглядит следующим образом:

В документе с этой таблицей шрифтов Courier New будет печатать «вещи». Шрифт нельзя использовать в документе, пока он не будет указан в таблице шрифтов.

Конец документа

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

В ранние дни Windows очень популярным форматом для создания документов был формат .txt. Файлы в этом формате можно было создавать в программе просмотра Блокнота по умолчанию.

Но у Блокнота есть некоторые ограничения.

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

Но по мере развития технологий в 1987 году корпорация Microsoft разработала формат RTF. Самая большая особенность RTF – межплатформенный обмен документами с продуктами Microsoft.

Microsoft прекратила поддержку формата RTF в 2008 году. Он по-прежнему широко используется, и многие файлы, которые можно найти в Интернете, имеют формат RTF.

Здесь мы собираемся создать краткое представление о RTF. Здесь мы рассмотрим следующие вещи.

Обзор:

RTF — это особый тип текстового редактора, разработанный Microsoft. Он в основном предназначен для передачи документов между программами обработки текстов.

RTF решает несколько проблем:

  • Как вы передаете файлы Word между компьютерами Mac и ПК? ► Легко: просто "Сохранить как" файл RTF и передать этот файл RTF.
  • Как форматировать вывод из базы данных в документ Word? ► Легко: запишите в виде файла RTF.
  • RTF предоставляет коды, которые позволяют делать все, что можно делать в Word, и многое другое, чего нельзя делать в HTML.
  • Формат RTF позволяет использовать изображения и другие объекты в документе.
  • Формат файла RTF также позволяет кодировать основные элементы файлов, такие как размер, цвет и шрифт текста.Однако по мере продвижения вперед на рынке стал доминировать формат doc и docs.
  • Для формата файла RTF используется расширение .rtf.

Как мы можем открыть файл в формате RTF?
Редактором по умолчанию для файлов в формате RTF является WordPad. Приложение WordPad поставляется вместе с операционной системой Windows.

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

RTF – это язык, похожий на HTML, который интерпретируется различными программами.

Как мы можем увидеть код RTF?
1.Сначала создайте текстовый документ в Microsoft Word.
2. Сохраните текстовый документ как файл RTF.
3.Откройте файл в редакторе Блокнота.

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

Файл RTF состоит из неформатированного текста, управляющих слов, управляющих символов и групп.

1. Управляющие слова:

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

Свойства:

  • Управляющее слово не может быть длиннее 32 символов.
  • Каждое управляющее слово начинается с обратной косой черты.
  • LetterSequence состоит из букв нижнего регистра (a-z). RTF чувствителен к регистру.
  • Управляющее слово имеет следующую форму:

Если управляющее слово не имеет параметра или имеет ненулевой параметр, предполагается, что управляющее слово включает свойство.
Пример: \b ► Выделите текст жирным шрифтом.

Если управляющее слово имеет параметр 0, предполагается, что управляющее слово отключает свойство.
Пример: \b0 ► Отключение жирного шрифта.

2. Символы управления:

Управляющий символ состоит из обратной косой черты, за которой следует один неалфавитный символ. Управляющие символы не имеют разделителей.
Пример: \~ ► Представляет неразрывный пробел.

3. Группы:

Группа состоит из текста и управляющих слов или управляющих символов, заключенных в фигурные скобки (<>). Файл RTF может включать группы для шрифтов, стилей, цвета экрана, изображений, сносок, комментариев (аннотаций), верхних и нижних колонтитулов, сводной информации, полей и закладок, а также документов, разделов, абзацев и символов. свойства форматирования.

Свойства:

  • Открывающая фигурная скобка (<) указывает на начало группы, а закрывающая скобка (>) указывает на конец группы.
  • Каждая группа определяет текст, на который влияет группа, и различные атрибуты этого текста.
  • Форматирование, указанное в группе, влияет только на текст внутри этой группы.

На синтаксис RTF повлиял язык набора текста TeX. Вот некоторые примеры синтаксиса кода RTF.

< td style="text-align:center">\b
Синтаксис Значение
\i Курсив
Жирный
\u Подчеркнуть
\par Конец абзаца(возврат каретки)
\qj Выравнивание текста по ширине
\ql Вровень по левому краю
\qr Вровень вправо
\qc Отцентрировать текст

< td style="text-align:center">$U+/-
Синтаксис Значение
$RTF+/- Включить или отключить форматирование
$NL Вставляет новую строку
$CENTER+ Выравнивание по центру
$RIGHT+ Выравнивание по правому краю
$RESET Сбросить выравнивание текста (выравнивание по левому краю)
$NUM+/- Нумерованный список
$B+/- Атрибут Bold
$I+/- Атрибут курсив
Атрибут подчеркивания
$UT+/- Атрибут жирного подчеркивания
$UDOT+/- Атрибут подчеркивания точкой
$UD+ /- Атрибут подчеркивания дефиса
$UDD+/- Атрибут подчеркивания точка-точка-тире
$UW+/- Атрибут подчеркивания Wavey
$STR+/- Атрибут зачеркивания
$SUB+/- Атрибут нижнего индекса
$SUP+/- Атрибут верхнего индекса
$CAPS+/- Все атрибуты заглавных
$BULLET+/- Маркированный список
$BLACK+/- Атрибут черного цвета
$BLUE+/- Атрибут синего цвета
$B_ +/- Атрибут цвета фона

Атрибут цвета фона, где указан один из цветов, перечисленных ниже.

  • Черный ► $BLACK+/-
  • Синий ► $BLUE+/-
  • Голубой ► $Голубой+/-
  • Зеленый ► $ЗЕЛЕНЫЙ+/-
  • Магнета ► $MAGNETA+/-
  • Красный ► $RED+/-
  • Белый ► $WHITE+/-
  • Желтый ► $YELLOW+/-
  • Темно-синий ► $DBLUE+/-
  • Темно-голубой ► $DCYAN+/-
  • Темно-зеленый ► $DGREEN+/-
  • Темный Магнета ► $DMAGENTA+/-
  • Темно-красный ► $DRED+/-
  • Темно-желтый ► $DYELLOW+/-
  • Автоматически ► $AUTO

Стандартный файл RTF может состоять только из 7-битных символов ASCII. Максимальная длина строки для RTF-файла не установлена.

Как RTF обрабатывает символы вне диапазона ASCII?

RTF использует escape-последовательности для кодирования других символов. Два escape-символа

  1. экранирование кодовой страницы
  2. Начиная с RTF 1.5, Unicode экранируется.

В экранировании кодовой страницы две шестнадцатеричные цифры после обратной косой черты и апострофа пишущей машинки обозначают символ, взятый из кодовой страницы Windows. Например, если установлена ​​кодовая страница Windows-1256 , последовательность \'c8 будет кодировать арабскую букву bāʼ ب .

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

Для получения дополнительной информации посетите здесь.

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

Заголовок RTF:

Поле:

Описание:
Таблицы заголовков должны отображаться в этом порядке, если они существуют.

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

Простой текстовый файл — это любой файл, созданный с помощью текстового редактора, такого как Блокнот Microsoft, который часто заканчивается расширением .txt или не имеет расширения и не поддерживает форматирование. Форматированный текстовый файл, созданный в текстовом процессоре, по-прежнему может считаться текстовым файлом, но его следует называть документом, поскольку он поддерживает форматирование и другие функции.

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

Что можно сделать с текстовым файлом?

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

Распространенные вопросы о текстовых файлах, которые невозможно

Откройте текстовый файл в текстовом редакторе, таком как Microsoft WordPad или текстовом процессоре. После открытия выберите параметр «Сохранить как» и сохраните файл как файл форматированного текста (.rtf) или файл текстового процессора (например, .doc, .docx). Сохранение файла в качестве одного из этих типов файлов позволяет выполнять все перечисленные ниже задачи. Вы также можете выделить весь текст в текстовом файле, скопировать и вставить его в программу, поддерживающую форматирование.

Как центрировать текст в текстовом файле

Центрирование текста или изменение выравнивания текста (например, выравнивание по правому краю) невозможно в текстовом файле, поскольку обычный текст не поддерживает форматирование.

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

Как выделить жирным шрифтом текст в текстовом файле?

Жирный шрифт, курсив и подчеркивание — это все типы текстового формата, которые не поддерживаются в обычном текстовом файле.

Как изменить шрифт в текстовом файле?

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

Как вставить изображение в текстовый файл?

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

Этот форум перенесен в раздел вопросов и ответов Майкрософт. Посетите Microsoft Q&A, чтобы публиковать новые вопросы.

Отвечает:

Вопрос

Я пытаюсь вставить данные из RTF-файла в ячейку таблицы для обработки текстов documnet. после вставки данных я пытаюсь изменить стиль шрифта (например, цвет и размер). но я не нахожу решения сделать то же самое.

вот код для вставки данных.

строка sAltChunkId = "AltChunkId"

iUniqueChunkID = iUniqueChunkID + 1;

AlternativeFormatImportPart oChunk = mainPart.AddAlternativeFormatImportPart( AlternativeFormatImportPartType

использование ( FileStream fileStream = File .Open(oFileLocation, FileMode

AltChunk altChunk = новый AltChunk

lstTableCell[iCellCount].ReplaceChild(altChunk, lstTableCell[iCellCount].Elements Paragraph

Пожалуйста, дайте мне знать, как изменить стиль шрифта после вставки записи с использованием функции altchunk.

Заранее спасибо.

Ответы

1) Вам необходимо изменить AlternativeFormatImportPartType на RTF. В существующем коде вы добавили документ RTF как тип WordProcessingML.

Правильный код будет mainPart.AddAlternativeFormatImportPart( AlternativeFormatImportPartType . Rtf ltChunkId);

2) Altchunk не создает прогоны/абзацы сразу, вам нужно будет один раз открыть объединенный документ с помощью приложения Word или обработать его с помощью службы SharePoint Word Automation (если на стороне сервера), чтобы объединить части altchunk в прогоны и абзацы. (собственный Open XML).

Если вы не хотите ничего менять в сгенерированном XML, то в следующий раз, когда пользователь откроет документ в приложении Word, часть altchunk будет преобразована в прогоны/абзацы Open XML приложением Word.

Если вы хотите управлять форматированием каждого элемента, вставляемого из RTF, вам потребуется сгенерировать Open XML для каждого элемента RTF отдельно с помощью пользовательского кода. Вы можете использовать «Инструмент повышения производительности Open XML SDK 2.0», который можно загрузить вместе с загрузкой Open XML SDK, чтобы узнать, какой код требуется для определенных текстов/форматов.

Все ответы

Меня немного смущает ваше требование, измените стиль шрифта. Шрифт и стиль меняются по-разному, хотя изменение стиля изменит шрифт. Вы хотите изменить шрифт или изменить стиль?

Надеюсь, это поможет вам начать работу.

Форрест Го | Поддержка сообщества MSDN | Отзыв менеджеру

Спасибо за ответ.

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

Пожалуйста, предложите мне.

Я пытаюсь получить помощь от других людей по этому вопросу, пожалуйста, подождите некоторое время.

Форрест Го | Поддержка сообщества MSDN | Отзыв менеджеру

Я не верю, что это сработает. Поскольку вы используете altChunks для встраивания некоторого RTF в текстовый документ, эти данные RTF остаются как есть. Я считаю, что встроенный поддокумент RTF изолирован от остальной части документа Word, и RTF не может понимать стили и шрифты MS Word. По моему мнению, если вы хотите повлиять на стили в поддокументе RTF с помощью стилей Word, вам нужно будет преобразовать RTF в Open XML, а затем вставить его в документ Word.

Конечным решением было преобразовать RTF в HTML и, наконец, записать его в AlternativeFormatImportPart.

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

Спасибо за ваш вклад.

Нужно пояснение.

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

Вот пример, поясняющий проблему.

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

Спасибо за ваш вклад.

Нужно пояснение.

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

Вот пример, поясняющий проблему.

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

1) Вам необходимо изменить AlternativeFormatImportPartType на RTF. В существующем коде вы добавили документ RTF как тип WordProcessingML.

Правильный код будет mainPart.AddAlternativeFormatImportPart( AlternativeFormatImportPartType . Rtf ltChunkId);

2) Altchunk не создает прогоны/абзацы сразу, вам нужно будет один раз открыть объединенный документ с помощью приложения Word или обработать его с помощью службы SharePoint Word Automation (если на стороне сервера), чтобы объединить части altchunk в прогоны и абзацы. (собственный Open XML).

Если вы не хотите ничего менять в сгенерированном XML, то в следующий раз, когда пользователь откроет документ в приложении Word, часть altchunk будет преобразована в прогоны/абзацы Open XML приложением Word.

Если вы хотите управлять форматированием каждого элемента, вставляемого из RTF, вам потребуется сгенерировать Open XML для каждого элемента RTF отдельно с помощью пользовательского кода. Вы можете использовать «Инструмент повышения производительности Open XML SDK 2.0», который можно загрузить вместе с загрузкой Open XML SDK, чтобы узнать, какой код требуется для определенных текстов/форматов.

WordTemplate wt = новый WordTemplate();

//--- открываем предварительно отформатированный документ-шаблон

byte[] rtfData = File.ReadAllBytes("EmbeddedRTF.rtf");

//--- "RTF" в массиве во втором аргументе - имя поля слияния в шаблоне

Читайте также: