Получить простой текст из текста в формате RTF

В моей базе данных есть столбец, содержащий текст в формате RTF.

Как я могу получить только простой текст, используя C#?

Спасибо

Ответов (3)

Решение

Microsoft предоставляет пример, в котором они в основном вставляют текст rtf в a, RichTextBox а затем читают .Text свойство ... это выглядит несколько неуклюже, но работает.

static public string ConvertToText(string rtf)
{
   using(RichTextBox rtb = new RichTextBox())
   {
       rtb.Rtf = rtf;
       return rtb.Text;
   }
}

для WPF вы можете использовать (используя Xceed WPF Toolkit) этот метод расширения:

public static string RTFToPlainText(this string s)
    {
       // for information : default Xceed.Wpf.Toolkit.RichTextBox formatter is RtfFormatter 
        Xceed.Wpf.Toolkit.RichTextBox rtBox = new Xceed.Wpf.Toolkit.RichTextBox(new System.Windows.Documents.FlowDocument());
        rtBox.Text = s;
        rtBox.TextFormatter = new Xceed.Wpf.Toolkit.PlainTextFormatter();
        return rtBox.Text;

    }

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