RTFの仕様

標準仕様を読んだわけではなく、Windowsのワードパッドを使用して作成されたRTFファイルの構造から推測した仕様なので、まかり間違って検索かなにかで引っかかってこれを読んでいる人は注意してください。そんなに有益な情報はありません。セッションログがRTFで残るので、それを公開リプレイ化(HTML化)しやすいようにテキストにコンバートする時にどう処理したものかを考える自分用備忘録です。


・ヘッダ部分で、使用されている言語やフォントが指定される
・ヘッダ部分で、色情報テーブルが作成される
・本文部分で、色指定をする場合、\cf[x](例:\cf1)のような書式で、ヘッダ部分で定義されている色情報テーブルの「何番目の色を使用しているか」を、[x]で指定する
・色が増えれば当然ヘッダの色情報テーブルも増える
・どうやら保存(あるいは文字追加)するタイミングで色情報テーブルの順番が変わることがあるらしい。「赤」→「緑」と色情報を追加すれば、当然「赤」が[\cf1]で「緑」が[\cf2]のように思えるが、「緑」が[\cf1]になったりもする
・なので色情報を正確に取得するには、毎回色情報テーブルを確認する必要がある
・2byte文字は\'で始まる十六進数二桁×2で表記される。「あ」だと「\'82\'a0」になる。記号として表記される「\」とかとても紛らわしいので注意
・改行は「\par」で行末にあるので、改行部分を取得するのが面倒かつ必要ない(一行ずつ読み取れば\parが行末にあって改行してるのは当然だから)場合、MID関数なりで行末の四文字をチェックして\parを削除して無駄にテキスト化ルーチンを回さないようにしたほうが省エネかもしれない
・太字は「\b」で開始で「\b0」で終了
・他の記号は知らない
・フォントサイズの指定も知らない
・正直だるい