【发布时间】:2010-09-06 13:06:12
【问题描述】:
在 C# 控制台应用程序中,我需要从 RTF 字符串中提取文本,向其中添加更多文本,然后将其转换回 RTF。我已经能够使用 System.Windows.Forms.RichTextBox 类来做到这一点,但我发现在非 Forms 应用程序中使用 Forms 控件有点奇怪。有更好的方法吗?
【问题讨论】:
在 C# 控制台应用程序中,我需要从 RTF 字符串中提取文本,向其中添加更多文本,然后将其转换回 RTF。我已经能够使用 System.Windows.Forms.RichTextBox 类来做到这一点,但我发现在非 Forms 应用程序中使用 Forms 控件有点奇怪。有更好的方法吗?
【问题讨论】:
除非您使用 Windows 窗体,否则使用 RTF 做任何事情都非常困难。如上所述,使用表单是最简单的方法。
您可以自己编写一些东西,但 RTF 规范相当复杂。
http://www.biblioscape.com/rtf15_spec.htm
或者您可以使用有大量可用的转换 DLL / ActiveX 对象。 http://www.sautinsoft.com/
或者 - 如果您在 Linux 上执行此操作,也有可用的工具。粗略一瞥就会发现 UnRTF http://www.gnu.org/software/unrtf/unrtf.html
我没有包含将文本转回 RTF 的内容,因为我认为 RTF 规范正确处理和格式化文本。
【讨论】:
我认为你应该摆脱这种“奇怪”的感觉。没有什么奇怪的。
【讨论】:
这取决于你所说的“更好”是什么意思。您已经在使用最简单、最简单的方法了。
【讨论】:
在控制台应用程序甚至 Web 应用程序中使用用户界面控件没有任何问题。 Windows 控件是 .NET Framework 的一部分,不妨使用它们。这些控件无需托管在“表单”中即可工作。
重新发明轮子、使用 DLL/ActiveX/OCX 和使用 Linux 根本不是您问题的实际答案。更好的方法是……做你知道的。使用现有框架方法然后使用建议的替代方法实际上有性能和维护方面的好处。
【讨论】: