如何在 C# 中将多个 RTF 文件合并为一个 RTF
本文关键字:RTF 合并 一个 文件 | 更新日期: 2023-09-27 18:32:15
我正在尝试将多个 rtf 文档合并为一个。 合并的大小增加(所有文档的大小),但是当我打开时,我只能看到第一个RTF文件内容。
string srcpath = @"C:'CSI'RTFtest'src'";
string despath = @"C:'CSI'RTFtest'dest'single.rtf";
string content = "";
List<string> files = new List<string>(Directory.GetFiles(srcpath, "*.rtf"));
StreamReader read;
if (files.Count > 1)
{
for (int i = 0; i < files.Count; i++)
{
String filename = files[i];
content = File.ReadAllText(filename);
//content = content + read.ReadToEnd();
File.AppendAllText(despath, content.ToString());
File.AppendAllText(despath, System.Environment.NewLine);
}
RTF 文件不是文本文件。您不能只连接文本,因为涉及标题和其他结构。你可以在这里阅读有关此规范的所有信息 http://support.microsoft.com/kb/86999 (yuck)。如果您使用的是 wpf,则可以使用 TextRange 对象,将第一个文件加载到其中,然后追加每个附加文件的内容。或者,您可以将文件读取到 winForms 中的富文本框对象中并附加内容(如何加载:http://msdn.microsoft.com/en-us/library/1z7hy77a.aspx)。我想你可以使用 TextBox1.Rtf = TextBox1.Rtf + textBox2.rtf直到全部加载,因为 rtf 属性是带有 rtf 编码的字符串。
使用 StringBuilder
.您可以将 RTF 附加到 RTF。
例:
StringBuilder sb = new StringBuilder();
sb.Append(@"{'rtf1'ansi");
sb.Append(@"...
HPIrichTextBox.Rtf = sb.ToString();