C# でテキストを RTF 文字列に抽出/挿入するにはどうすればよいですか?
質問
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 の使用は、あなたの質問に対する現実的な答えではありません。より良い方法は...知っていることを実行することです。実際、既存のフレームワーク手法を使用するよりも、提案された代替手段を使用すると、パフォーマンスとメンテナンスの面で利点があります。