Как я могу изменить цвет фона определенных символов в документе RTF? - PullRequest
4 голосов
/ 18 августа 2010

Я пытаюсь вывести RTF (Rich Text Format) из программы на Ruby - и я бы предпочел просто генерировать RTF напрямую, не используя гем RTF, поскольку я делаю довольно простые вещи.

Я хотел бы выделить определенные символы в выравнивании последовательности ДНК, и из документов кажется, что я могу использовать \ highlightN ... \ highlight0 или \ cbN ... \ cb1

Проблема в том, что я не могузаставить \ cb работать в Word: Mac 2008 или Mac TextEdit (\ cf работает нормально, поэтому я знаю, что это не проблема с таблицей цветов)

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

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

Отчасти проблема в том, что Mac Word просто не реализует RTF должным образом.У меня нет удобной версии Word для Windows.

Кто-нибудь знает правильный способ затенения блоков текста?

Спасибо --Rob

Ответы [ 3 ]

5 голосов
/ 19 августа 2010

В RTF Pocket Guide есть примечание, в котором говорится, что MS Word не реализует команду \ cb. Там написано, что MS Word использует \ chshdng0 \ chcbpatN (где "N" - это номер цвета, который вы бы использовали с \ cb). В книге рекомендуется использовать что-то вроде следующего для совместимости с программами, которые реализуют \ cbN и / или \ chshdng0 \ chcbpatN: {\ chshdng0 \ chcbpat5 \ cb5 text}.

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

3 голосов
/ 22 марта 2017

Последовательность команд RTF, которая представляется наиболее универсально поддерживаемой приложениями с поддержкой RTF:

\chshdng10000\chcbpatN\chcfpatN\cbN

Эти команды:

  1. setзатенение до 100 процентов
  2. установить цвет переднего плана и фона для цвета из таблицы цветов (на самом деле мы не указываем шаблон затенения)
  3. установить цвет фона для символатаблица цветов

Word было самым сложным приложением для правильной визуализации цветов фона в:

Несмотря на то, что последние (1.9.1) RTF spec говорит, что Word 2013 не разрешает \highlightN цвета из \colortbl.Вместо этого \highlightN отображается в предварительно определенный список цветов.Похоже, что эти цвета взяты из версии 1.5 спецификации RTF .

Относительно \cb, спецификация 1.9.1 содержит этот полезный указатель в конце раздела на Таблица цветов :

Примечание: Версии Word для Windows никогда не поддерживали \ cb N , но это можетбыть эмулированным последовательностью контрольных слов \ chshdng0 \ chcbpat N .

Это почти полезное предложение, за исключением случаевВы прочитали документацию для \chshdngN:

Затенение символов.Аргумент N - это значение, представляющее затенение текста в сотых долях процента.

Итак, 0 оказывается не очень полезным значением;100 / 0.01 дает нам 10000, который мы использовали в приведенной выше последовательности.

1 голос
/ 05 июня 2016

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

Я использую WordPad каждый раз, когда мне нужно отобразить форматированный текст в приложении WinForms, и мне нужно что-то, что элемент управления RichTextBox может обрабатывать, назначаясь его параметру Rtf .

...