更新: 2008 年 7 月
RTF 格式是 Microsoft 于 20 世纪 80 年代后期开发的一种文件格式,旨在实现不同操作系统之间的文档交换。Microsoft Word 和 WordPad 都可以读写 RTF 文件。在 .NET Framework 中,可以使用
也可以使用
在项目中使用 RichTextBox 控件
添加对 System.Windows.Forms.dll 的引用。
为 System.Windows.Forms 命名空间添加 using 指令(可选)。
示例
下面的示例提供一个要转换的示例 RTF 文件。该文件包含 RTF 格式,例如字体信息,还包含四个 Unicode 字符和四个扩展的 ASCII 字符。该文件打开,以 RTF 格式传递到
C# | 复制代码 |
---|---|
// 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); } } |
RTF 字符以八位编码。但此格式除了允许用户从指定代码页扩展 ASCII 字符外,还允许用户指定 Unicode 字符。由于
如果使用
请参见
修订记录
日期 | 历史记录 | 原因 |
---|---|---|
2008 年 7 月 | 新增主题。 |
内容 Bug 修复 |