Я играл с этим несколько лет назад - в основном у меня был текст в базе данных, который я размечал, чтобы подчеркнуть некоторые слова. Я разметил это в хранимой процедуре, а затем перевел это в RTF на стороне клиента.
Я попытался изучить спецификацию RTF, но довольно сложно просто прочитать спецификацию и узнать, что делать.
Я предлагаю открыть WordPad (Пуск -> Выполнить ... -> WordPad), и возиться с различными стилями шрифтов и тому подобное. Затем сохраните его как документ RTF где-нибудь. Откройте этот документ в текстовом редакторе по вашему выбору (я использую Notepad ++ ), и это поможет вам намного легче определить RTF.
Вот пример простого RTF-документа, который я создал:
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\colortbl ;\red0\green0\blue255;}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 Hello World.\par
\b This text is bold.\b0\par
\i This text is italicized.\i0\par
\cf1 This text is blue.\cf0\par
}
Некоторые из этих тегов - просто дополнительная разметка, без которой вы, вероятно, можете обойтись. Поиграй с ним и посмотри.
В конце концов вы должны быть в состоянии сделать что-то вроде:
string rtf = GetMarkupTextFromServer();
rtf = rtf.Replace("[b]", @"\b");
rtf = rtf.Replace("[/b]", @"\b0");
rtf = rtf.Replace("[i]", @"\i");
rtf = rtf.Replace("[/i]", @"\i0");
...
mRichTextBox.Rtf = rtf;