В консольном приложении C # мне нужно извлечь текст из строки RTF, добавить к ней еще текст, а затем преобразовать его обратно в RTF. Мне удалось сделать это с помощью класса System.Windows.Forms.RichTextBox, но я считаю немного странным использовать элемент управления Forms в приложении, отличном от Forms. Есть лучший способ сделать это?
Как извлечь / вставить текст в строку RTF в C #
Ответы (4)
Делать что-либо с RTF довольно сложно, если вы не используете формы Windows. Как было сказано выше, проще всего использовать формы.
Вы можете написать что-нибудь самостоятельно, но спецификация 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 правильно обрабатывает и форматирует текст.
Я думаю, вам стоит просто избавиться от этого ощущения "странности". В этом нет ничего странного.
Это зависит от того, что вы имеете в виду под словом «лучше». Вы уже используете самый простой и легкий способ сделать это.
Нет ничего плохого в использовании элемента управления пользовательского интерфейса в консольном приложении или даже в веб-приложении. Элементы управления Windows являются частью .NET Framework, с таким же успехом можно их использовать. Эти элементы управления не обязательно размещать в «формах» для работы.
Изобретать колесо заново, использовать DLL / ActiveX / OCX и Linux - это просто непрактичные ответы на ваш вопрос. Лучше всего ... делать то, что знаешь. На самом деле есть преимущество в производительности и обслуживании от использования существующих методов фреймворка, а затем от использования предлагаемых альтернатив.