18

我的数据库中有一个包含 RTF 格式文本的列。

如何使用 C# 仅获取它的纯文本?

感谢:D

4

3 回答 3

32

微软提供了一个示例,他们基本上将 rtf 文本粘贴在 a 中RichTextBox,然后读取.Text属性……感觉有点笨拙,但它确实有效。

static public string ConvertToText(string rtf)
{
   using(RichTextBox rtb = new RichTextBox())
   {
       rtb.Rtf = rtf;
       return rtb.Text;
   }
}
于 2009-02-27T18:00:38.823 回答
1

对于 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;

    }
于 2018-05-06T09:59:35.670 回答
0

如果你想要一个纯代码版本,你可以自己解析 rtf 并只保留文本位。这是一些工作,但不是很困难的工作 - RTF 文件的语法非常简单。在 RTF 规范中阅读它

于 2009-02-27T18:03:57.523 回答