将txt转换为rtf

我有一堆文本文件,我想转换为rtf。 只是更改代码中的扩展名不起作用,底层文件是相同的。 我需要文本是rtf格式。 谁知道我怎么做到这一点?

问题是,当我加载纯文本文件时,RichTextBox没有格式化新行,因此它将其作为一个连续的文本块加载,而不是插入新行。

唯一的解决方案是打开纯文本文件和“另存为”rtf。

只需将文本添加到空的RTF模板中,纯文本无论如何都没有任何格式化,所以让我们说rtf模板看起来像这样(来自wikipedia示例):

 {\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard _TEXT_CONTENT_HERE_ } 

更新:我忘记了新的线条,大括号和反斜杠:)

 public static string PlainTextToRtf(string plainText) { string escapedPlainText = plainText.Replace(@"\", @"\\").Replace("{", @"\{").Replace("}", @"\}"); string rtf = @"{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard "; rtf += escapedPlainText.Replace(Environment.NewLine, @" \par "); rtf += " }"; return rtf; } 

安东尼奥的改进方法(注意我定义了一个代码页\ ansicpg1250):

 public static string PlainTextToRtf(string plainText) { if (string.IsNullOrEmpty(plainText)) return ""; string escapedPlainText = plainText.Replace(@"\", @"\\").Replace("{", @"\{").Replace("}", @"\}"); escapedPlainText = EncodeCharacters(escapedPlainText); string rtf = @"{\rtf1\ansi\ansicpg1250\deff0{\fonttbl\f0\fswiss Helvetica;}\f0\pard "; rtf += escapedPlainText.Replace(Environment.NewLine, "\\par\r\n ") + ; rtf += " }"; return rtf; } 

编码字符(波兰语)方法:

 private static string EncodeCharacters(string text) { if (string.IsNullOrEmpty(text)) return ""; return text .Replace("ą", @"\'b9") .Replace("ć", @"\'e6") .Replace("ę", @"\'ea") .Replace("ł", @"\'b3") .Replace("ń", @"\'f1") .Replace("ó", @"\'f3") .Replace("ś", @"\'9c") .Replace("ź", @"\'9f") .Replace("ż", @"\'bf") .Replace("Ą", @"\'a5") .Replace("Ć", @"\'c6") .Replace("Ę", @"\'ca") .Replace("Ł", @"\'a3") .Replace("Ń", @"\'d1") .Replace("Ó", @"\'d3") .Replace("Ś", @"\'8c") .Replace("Ź", @"\'8f") .Replace("Ż", @"\'af"); }