如何将rtf字符串转换为C#中的文本

有没有一种简单的方法从Rtf字符串中提取文本而不使用RichTextBox ?

例:

{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Segoe UI;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\lang2070\ltrch foo}\li0\ri0\sa0\sb0\fi0\ql\par} {\f2 {\lang2070\ltrch bar }\li0\ri0\sa0\sb0\fi0\ql\par} } } 

应该返回:

 foo bar 

在MSDN上有一篇简单的文章来实现你想要的: http : //msdn.microsoft.com/en-us/library/cc488002.aspx

 class ConvertFromRTF { static void Main() { string path = @"test.rtf"; //Create the RichTextBox. (Requires a reference to System.Windows.Forms.dll.) System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox(); // Get the contents of the RTF file. Note that when it is // stored in the string, it is encoded as UTF-16. string s = System.IO.File.ReadAllText(path); // Display the RTF text. System.Windows.Forms.MessageBox.Show(s); // Convert the RTF to plain text. rtBox.Rtf = s; string plainText = rtBox.Text; // Display plain text output in MessageBox because console // cannot display Greek letters. System.Windows.Forms.MessageBox.Show(plainText); // Output plain text to file, encoded as UTF-8. System.IO.File.WriteAllText(@"output.txt", plainText); } }