我的数据库中有一个包含 RTF 格式文本的列。
如何使用 C# 仅获取它的纯文本?
感谢:D
微软提供了一个示例,他们基本上将 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 规范中阅读它。