まとめの質問:
- RTF バージョン 1.6 形式でファイルを保存できる軽量アプリケーションをご存知ですか?
- RTF Abiwordの「古いアプリ向けリッチテキストフォーマット」が対応しているバージョンをご存知ですか?
- RTF ファイルを調べて、エンコードされている RTF のバージョンを特定する方法を知っていますか?
- Windows NT 4.0 マシンで RTF 形式を記述している DLL と、アップグレードできるかどうかを知っていますか?
組み込みの Windows NT 4.0 マシンで実行される従来の MS Visual C++ 6.0 MFC アプリケーションがあります。このアプリケーションは、MFC のCRichEditViewクラスを使用してアプリ内ヘルプを提供し、help.rtfというRTFファイルからテキストを引き出します。ヘルプ ファイルは、RTF バージョン 1.6 として保存されます。これは常に、MS Word 2000 または Windows NT 4.0 に付属するバージョンのワードパッドを使用して編集されています。
問題は、私たちの開発者用ワークステーションには、Windows XP (およびそのバージョンのワードパッド) と Office 2003 以降が搭載されている傾向があり、どちらも 1.6 よりも新しいバージョンの RTF を使用していることです。ファイルを編集して、その古い形式で再保存できます。新しいバージョンの Word またはワードパッドを使用してファイルを保存すると、新しいバージョンの RTF として保存されます。次に、NT マシンでアプリケーションを実行すると、ヘルプ テキストが正しく表示されません。(ただし、同じアプリケーションを XP マシンで実行すると、ヘルプ テキストは正しく表示されます。)
だから、私は2つのことのいずれかをやろうとしています:
- RTF バージョン 1.6 形式でファイルを保存するアプリケーション (できれば Word 2000 よりも軽量) を見つけてください。これは、ヘルプ ファイルの今後の編集に使用できます。
- NT マシンが新しいバージョンの RTF を適切に読み取れるようにする方法を見つけてください。
最初に、 「古いアプリ用のリッチ テキスト形式」オプションがあるAbiWordを試しましたが、このオプションが出力する RTF のバージョンがわかりません。これは何版かわかりますか?残念ながら、 RTF仕様のすべてのバージョンからのこのかわいい一節ごとに、「rtf1」とだけ書かれているファイルのメタデータからはすぐにはわかりません。RTF ファイルを分析して、エンコードされている RTF のバージョンを特定する方法はありますか?
この RTF 仕様で説明されている RTF 標準は、バージョン 1.6 というタイトルが付いていますが、構文的には引き続き RTF 仕様のバージョン 1 に対応しています。したがって、\rtf コントロール ワードの数値パラメータ N は引き続き 1 として出力されます。
もう 1 つは、Windows NT がフォーマットの新しいバージョンを認識できるように更新できる DLL があるかどうかです。どの DLL が RTF 形式を記述しているか、またアップグレードできるかどうかを知っていますか?