我们在 C# 中创建了一个 DLL,以使用 System.Windows.Forms.RichTextBox 读取 RTF 文件。在接收到一个 RTF 文件名后,它会从文件中返回一个没有属性的文本。
代码提供如下。
namespace RTF2TXTConverter
{
public interface IRTF2TXTConverter
{
string Convert(string strRTFTxt);
};
public class RTf2TXT : IRTF2TXTConverter
{
public string Convert(string strRTFTxt)
{
string path = strRTFTxt;
//Create the RichTextBox. (Requires a reference to System.Windows.Forms.)
System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox();
// Get the contents of the RTF file. When the contents of the file are
// stored in the string (rtfText), the contents are encoded as UTF-16.
string rtfText = System.IO.File.ReadAllText(path);
// Display the RTF text. This should look like the contents of your file.
//System.Windows.Forms.MessageBox.Show(rtfText);
// Use the RichTextBox to convert the RTF code to plain text.
rtBox.Rtf = rtfText;
string plainText = rtBox.Text;
//System.Windows.Forms.MessageBox.Show(plainText);
// Output the plain text to a file, encoded as UTF-8.
//System.IO.File.WriteAllText(@"output.txt", plainText);
return plainText;
}
}
}
Convert 方法从 RTF 文件返回纯文本。在 VC++ 应用程序中,每次我们加载 RTF 文件时,内存使用量都会继续
增加。每次迭代后,内存使用量增加 1 MB。
我们是否需要在使用后卸载 DLL 并再次加载新的 RTF 文件?RichTextBox 控件是否始终保留在内存中?或任何其他原因....
我们已经尝试了很多,但我们找不到任何解决方案。这方面的任何帮助都会有很大的帮助。