Получить простой текст из текста RTF - PullRequest
17 голосов
/ 27 февраля 2009

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

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

Спасибо: D

Ответы [ 3 ]

30 голосов
/ 27 февраля 2009

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

static public string ConvertToText(string rtf)
{
   using(RichTextBox rtb = new RichTextBox())
   {
       rtb.Rtf = rtf;
       return rtb.Text;
   }
}
0 голосов
/ 06 мая 2018

для 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;

    }
0 голосов
/ 27 февраля 2009

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

...