添付書類付きリッチテキスト(.rtfd)の実態
リッチテキスト(.rtf)には画像を貼付けることも出来て、テキストエディットで画像ありの書類を保存してみると、添付書類付きリッチテキスト(.rtfd)として保存できた。
- 画像を貼付けるにはドラッグ&ドロップ、またはコピー&ペーストでOK。
.rtfdの「d」はディレクトリの意味らしく、その名の通り保存された.rtfdは control-クリック して「パッケージの内容を表示」でその中身を見ることも出来た。つまり、XXXX.rtfdとはファイルではなく、フォルダ(ディレクトリ)ということだ。(以下のような感じ。)
- XXXX.rtfdフォルダの中にはTXT.rtfと画像ファイルが入っていた。
- TXT.rtfの中身は以下
そして、リッチテキストに添付する書類は画像に限らず、あらゆるオブジェクト(ファイルやフォルダ)が添付できるみたい。
- 映像
- 音楽
- なんと、アプリケーションまで!
自作のAppleScriptなんかを配布する時に、今までは説明文とスクリプトファイルを分けていたけど、リッチテキストにそのまま貼付けて説明文と一緒にしてしまうことも出来るはず。リッチテキスト上のアイコンをドラッグ&ドロップ、あるいはコピー&ペーストすれば、好みの場所にインストールすることが出来る。
もっと言えば、リッチテキストの中にその他のリッチテキストを貼付けることも出来る。だから、ルートのインデックス文書を作り、その中に必要な文書を放り込めば目次のようになるし、さらにその中に文書を貼付けて階層構造を持たせることも出来るのだ。(リンクと違って、トップページにジャンプする方法は無いけど。)
リッチテキストの立ち位置
リッチテキストで音楽や映像等が扱える(あまり需要はないと思うが)ことは分かったが、コンピュータ上で見る前提の書類ならHTMLで作成してしまうだろうと。それなら何でリッチテキスト形式が存在するのだろう?という疑問が湧いた。
- すべてHTMLで良いじゃなかと...。
- 今ならOpenDocument形式とかでもよいかも...。
Attributed Strings Programming Guide(素晴らしい翻訳に感謝!)を読んでみた勝手な解釈。
- OSXの中で文字列を描画する時には、NSAttributedString(またはNSMutableAttributedString)というクラスが利用されている。
- NSAttributedStringは文字列の様々なスタイル設定を、属性として保持する役割を担っている。
- 編集した文字列は、ファイルに保存することになるだろう。その時、NSAttributedStringの属性をファイルに書き出す必要がある。
- リッチテキスト(.rtfや.rtfd)はNSAttributedStringと親和性が高い。
つまり、リッチテキストはスタイル付きのテキストを保存する最もOS寄りな形式(の一つ)なのであった。