几年前我玩过这个 - 基本上我在数据库中有文本,我正在标记以强调某些单词。我在存储过程中对其进行了标记,然后在客户端将其转换为 RTF。
我尝试查看 RTF 规范,但仅阅读规范并知道该怎么做有点挑战性。
我建议打开写字板(开始 -> 运行... -> 写字板),并使用不同的字体样式等。然后将其另存为 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;