在一个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都不是对你的问题的实际解答。更好的方法是……做你所熟悉的。实际上,使用现有的框架方法而不是使用建议的替代方案,有助于提高性能和维护性。
这取决于你对“更好”的定义。你已经在使用最简单和最容易的方法了。