データベースに、テキストを RTF 形式で保持する列があります。
C# を使用してプレーン テキストのみを取得するにはどうすればよいですか?
ありがとう
マイクロソフトは、基本的に 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仕様でそれについて読んでください。