在 .NET Framework 中,可以使用 控制項建立支援 RTF 且支援使用者以 WYSIWIG 方式將格式應用於文本的文書處理器。
也可以使用 以編程方式將 RTF 格式代碼從文檔中移除,從而將該文檔轉換為純文字。執行這種類型的操作無需在 Windows 表單中嵌入該控制項。
在項目中使用 RichTextBox 控制項
添加對 System.Windows.Forms.dll 的引用。
- 為 System.Windows.Forms 命名空間添加 using 指令(可選)。
樣本
下面的樣本提供一個要轉換的樣本 RTF 檔案。該檔案包含 RTF 格式,例如字型資訊,還包含四個 Unicode 字元和四個擴充的 ASCII 字元。該檔案開啟,以 RTF 格式傳遞到 ,作為文本檢索,在 中顯示並且輸出到一個 UTF-8 格式的檔案中。
// Save the following RTF file to the same folder as your .exe file, and call it "test.rtf".
/*
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fnil\fprq1\fcharset0 Courier New;}{\f2\fswiss\fprq2\fcharset0 Arial;}}
{\colortbl ;\red0\green128\blue0;\red0\green0\blue0;}
{\*\generator Msftedit 5.41.21.2508;}\viewkind4\uc1\pard\f0\fs20 This is the \i Greek \i0 word "psyche": \cf1\f1\u968?\u965?\u967?\u942?\cf2\f2 . It is encoded in Unicode.\par
Here are four extended \b ASCII \b0 characters (Windows code page 1252): \'e2\'e4\u1233?\'e5\cf0\par
}
*/
class ConvertFromRTF
{
static void Main()
{
string path = @"test2.rtf";
//Create the RichTextBox. (Requires a reference to System.Windows.Forms.dll.)
System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox();
// Get the contents of the RTF file. Note that when it is
// stored in the string, it is encoded as UTF-16.
string s = System.IO.File.ReadAllText(path);
// Display the RTF text.
System.Windows.Forms.MessageBox.Show(s);
// Convert the RTF to plain text.
rtBox.Rtf = s;
string plainText = rtBox.Text;
// Display plain text output in MessageBox because console
// cannot display Greek letters.
System.Windows.Forms.MessageBox.Show(plainText);
// Output plain text to file, encoded as UTF-8.
System.IO.File.WriteAllText(@"output.txt", plainText);
}
}