Rich Text Format(RTF, リッチテキストフォーマット)は、文書ファイルフォーマットの1つ。交換・編集可能なクロスプラットフォームの文書フォーマットとして1987年からマイクロソフトにより開発され、仕様の策定が進められた。多くのワープロソフトで読み書き可能。ファイル拡張子は「.rtf」。

Rich Text Format
拡張子.rtf
MIMEタイプapplication/rtf[1], text/rtf[2]
UTIpublic.rtf[3]
マジック
ナンバー
{\rtf
開発者マイクロソフト
初版1987年
最新版
1.9.1
(2008年3月20日 (16年前) (2008-03-20))
種別文書ファイルフォーマット

プレーンテキストに比べて、文字のフォント・大きさ・色や太字・斜体などの装飾指定、画像の表示、文字揃え(左揃え/中央揃え/右揃え)、箇条書きなどの簡易レイアウトを行える特徴があり、比較的簡易なワープロソフトのデータフォーマットの一つとして位置づけられる。

また、PDFは主に閲覧・印刷を目的とした交換フォーマットであるのに対して、RTFは編集可能な交換フォーマットとなっている。

仕様

編集

1992年にRich Text Formatの仕様であるRTF 1.0が公開され、2007年1月にRTF 1.9となっている。

  • 1992年6月 RTF 1.0
  • 1994年1月 RTF 1.3
  • 1995年9月 RTF 1.4
  • 1997年4月 RTF 1.5
  • 1999年5月 RTF 1.6
  • 2001年8月 RTF 1.7
  • 2004年4月 RTF 1.8
  • 2007年1月 RTF 1.9
  • 2008年3月 RTF 1.9.1

バージョンの履歴

編集
  • RTF 1.3の仕様はMicrosoft Word 6.0の機能をすべて含んでいる。
    ※ただし日本語版に関しては一部機能が後述するRTF-Jに含まれる。以下同様。
  • RTF 1.4の仕様はWord 7.0の機能をすべて含んでいる。
  • RTF 1.5の仕様はWord 95 Version 7.0とWord 97で追加された命令語に対応した。
  • RTF 1.6の仕様は、上記のほかWord 2000、Macintosh版Word 98などで追加された命令語をサポートするほか、Pocket Word、Exchange向け仕様(RTF ⇔ HTML変換に使用)を含む。
  • RTF 1.7の仕様は上記のほかWord 2002で追加された命令語をサポートする。
  • RTF 1.8の仕様はWord 2003の新機能をサポートする。
  • RTF 1.9.1の仕様はWord 2007の新機能をサポートする。ほかPocket Word、RichEdit、Exchange、Microsoft Outlook向けの追加機能がある。
    さらに以下をサポートする。
    • XMLマークアップ、名前空間のカスタム定義をサポート
      ※XMLの利用方法についてはOffice Open XML仕様 (Ecma-376, Part4) を参照。
    • カスタムXMLスキーマのバリデーション
    • XML形式に保存する際にはXSLを出力できる(仕様書には記述無し)
    • RTF内にOMMLを記述できる
    • 読み込み専用パスワードでRTFを保護できる

マイクロソフトはRTFの仕様を1.9.1以上には更新しないと言明しているが、ISO/IEC 29500策定の間に小さい修正を加えたい意向である。機能面には影響はないと見られる。

Rich Text Format (RTF) の仕様はMicrosoft WordとOfficeのメジャーバージョンアップの度に改訂されている。

RTF仕様とMicrosoft Wordの対応[4][5]
RTFバージョン 発行日 Microsoft Wordのバージョン Microsoft Wordのリリース日 備考
1.0 1987 Microsoft Word 3 1987 最終版は92年6月[6][7]
1992版ではMicrosoftのObject Linking and Embedding (OLE) オブジェクトとMacintosh版でのManager subscriberオブジェクトをサポートした。
またWMFPICT、WindowsのDIBOS/2メタファイル各形式の画像の貼り込みをサポートする。
1.1 Microsoft Word 4 1989 フォントの文書ファイル内への埋め込みをサポート
1.2 1993 Microsoft Word 5 1991 [8][9]
1.3 1994年1月 Microsoft Word 6 1993 GC0165; DIBの貼り付けが互換性の問題で非推奨になった。以後はWMFの使用が推奨される[10][11]
1.4 1995年9月 Microsoft Word 95/Word 7 1995
1.5 1997年4月 Microsoft Word 97/Word 8 1997 Unicode RTFの導入 - 16ビットUnicodeエンコーディングが可能になった。
画像の添付についてはPNGJPEGEMF画像形式は16進数のバイナリ形式で貼り付けられる[12]
1.6 1999年5月 Microsoft Word 2000/Word 9 1999 Word 2000 RTF仕様 [13]
1.7 2001年8月 Microsoft Word 2002/Word 10 2001 Word 2002 RTF仕様

[14] [15]
RTF version 1.7はWindows版Word 95/97/2000/2002、Macintosh版Word 98などで追加された命令語をサポートする。

1.8 2004年4月 Microsoft Word 2003/Word 11 2003 Word 2003 RTF仕様[16]

Version 1.8はMicrosoft Word 2003にて追加された拡張機能を備える。

1.9.1 2008年3月19日
(RTF 1.9 - 2007年1月)[17]
Microsoft Word 2007/Word 12 2006 XMLマークアップの導入 - カスタム XML タグ, スマートタグ, RTF内の数学記号のサポート - Office Open XML仕様への準拠 (Ecma-376, Part 4)[18]

コード例

編集

RTFのデータはテキスト形式を用いており、プレーンテキストに装飾やレイアウトのための制御用の文字列を付加した形式となっている。後に現れたHTMLなどのマークアップ言語とは表記方法が異なる。

RTFの予約文字は{}\の3種のみである。{}はブロックを定義し、\に続く文字列・記号は命令語として解釈される。パラメータを取る場合もある。バージョンの違いなどにより解釈できない場合は無視される。改行文字には意味はなく、改行はそれに対応した命令語によって行われる。

  • RTFの一例:
{\rtf
Hello!\par
This is some {\b bold} text.\par
}

上のサンプルは下のように表示される。

Hello!
This is some bold text.

文字エンコーディング

編集

標準的なRTFファイルは7ビットのASCII文字で記述されているが、エスケープシーケンスを使うことでそれ以外の文字を扱える。コードページのエスケープのほか、RTF 1.5以降ではUnicodeのエスケープができる。

RTF 1.5よりも前のバージョンでは、7ビット文字以外は16進数のエスケープシーケンス (\'xx) で記述された。またRTF 1.5以降において、Unicodeで32767以降の文字は負の数で表現され、Unicode planeに収まらない文字はサロゲートペアで表現される。

コードページは\ansicpgNなどの命令で指定される。例えば日本語のリッチテキスト文書では通例\ansicpg932によりMicrosoftコードページ932が指定され、日本語の文字はシフトJISコードを16進数のエスケープシーケンスで表した記法が用いられる。たとえば、\'82\'a0\'82\'a2\'82\'a4のように表記され、これは「あいう」を表している。

人間にとっての可読性

編集

ワードプロセッサのファイル形式は、データ量削減などの観点からバイナリ形式を採用しているものもあり、人間が直接読めないことも多いが、RTFはプレーンテキストで記述されるので人間が読むことのできるフォーマットである。しかしながらMicrosoft Wordなどが出力するRTFは膨大な命令コードが入るため非常に読みにくくなる。さらに7ビットASCII以外の文字はすべてエスケープされるので、文字コードを知らない限り読めなくなる。

RTFは書式付きテキストであるが、本当の意味でのマークアップ言語ではないので、人が手で編集することは考慮されていない。またOLEオブジェクトなどが貼り付けられると、これも人には解読できない。

一般的な用途と相互運用性

編集

大半のワードプロセッサではRTFの読み書きができるが、RTFのバージョン次第のところがある。未知の命令語が入っている場合は無視されてしまうことが多い。

オブジェクト

編集

MicrosoftのOLE、またMacintosh版のsubscriber objectsの貼り付けは、元のアプリがないとその部分を編集できないため相互運用性を妨げる。もし開いた文書に自分の持たないアプリで作成されたOLEオブジェクトがある場合、代替ビットマップが表示されるか、全く表示されない。

画像

編集

JPEG、PNG, EMF, WMF, PICT, DIBがサポートされる。RTF作成ソフトは、サポート外のファイル形式 (BMP, TIFF, GIF等) を与えられた場合はPNG, WMFなどに変換して貼り付けるか、無視して表示しないようにする。

Microsoft Wordはレジストリに ("ExportPictureWithMetafile=0") の値を設定することで、WMFへの変換を禁止できる。

フォント

編集

フォントの埋め込みが仕様にあるが、広くサポートされてはいない。

またフォントにファミリー名(セリフ(明朝系)、サンセリフ(ゴシック系))を指定できるが、これも広くサポートされてはいない。

注釈

編集

注釈機能があるが、OpenOffice(3.3時点)、LibreOffice(3.3.2時点)などでは注釈のインポートができないなど、サポートは限定的である。

描画オブジェクト

編集

セキュリティ上の注意

編集

バージョン1.3から1.9.1現在にかけて、主にWord向けに日本語用の独自拡張仕様があり[19][20]、バージョン1.3から1.5ではRTF-Jと呼ばれる。バージョン1.6以降の仕様書では同様の拡張をFar East Support (1.6), East Asian Support (1.9.1) などと呼びつつ、仕様詳細部分では特に説明なくRTF-Jの呼称が使われている。

適切なマークアップを施すことでシフトJIS文字列を直接記述することもできる[19]が、この仕様は7ビットのASCII文字で記述という大前提に反するものである。そのためのリーダーは単に全ビットをそのまま通せば良いわけではなく、下位バイトに\を含むシフトJIS文字、いわゆるダメ文字に対して正しく対応できなければならない。またこの機能は読み込みにのみ適用され、書き出す場合はエスケープされる[注釈 1]。 Unicodeに関しては前述の通りRTF 1.5以降でサポートされているが、Unicode文字列の直接記述に関しては1.9.1現在でもサポートされていない。

RTF仕様のバージョンアップと同時に独自拡張仕様も追加されることがあるが、単体ではバージョン番号を持たず、拡張元のバージョンで区別される。

マイクロソフト製品以外ではほとんどサポートされない。

RTFに対応したソフトウェア

編集

オペレーティングシステムに付属するアクセサリソフトウェアをはじめ、多くのワープロソフトがRTFの読み書きに対応している。

例:

Win32コントロールのRichEditは、リッチテキスト形式データの表示・編集およびクリップボード経由のコピー&ペーストに対応している[21][22]

マイクロソフトのソフトウェア開発・実行環境である.NET Frameworkにおいて、Windows FormsRichTextBoxクラスにRTF対応のLoadFile()メソッド等が当初から実装されている[23].NET Core 3.0以降にも移植されている[24][注釈 2]

NEXTSTEP、およびNEXTSTEPに由来する機能を持つmacOSiOSでは、Rich Text Formatを拡張したRTFD(Rich Text Format Directory、添付書類付きRTF)というフォーマットも使われている。その実体は、独自拡張したRTFファイルと添付ファイルを、拡張子RTFDの同一フォルダに入れたものである。なおOSからは拡張子RTFDののフォルダは、単一のアーカイブファイルに見えるようになっている。

脚注

編集

注釈

編集
  1. ^ Word 6.0JではINIファイルを編集することで直接書き出すこともできた。
  2. ^ .NET Core自体はクロスプラットフォームだが、Windows FormsはWindows版のみが実装されている。

出典

編集
  1. ^ application/rtf” (英語) (2007年6月18日). 2016年6月11日閲覧。
  2. ^ Lindner, Paul (1993年6月8日). “Registration of new MIME content-type/subtype” (英語). 2016年6月11日閲覧。
  3. ^ System-Declared Uniform Type Identifiers” (英語) (2009年11月17日). 2016年6月11日閲覧。
  4. ^ Information about the Rich Text Format (RTF) version specifications for various versions of Word” (2007年2月21日). 2010年3月13日閲覧。
  5. ^ Those who forget Santayana…”. Rob Weir (2007年12月20日). 2010年3月13日閲覧。
  6. ^ Microsoft Corporation (RTF), Rich-Text Format (RTF) Specification - RTF Version 1.0, http://www.snake.net/software/RTF/Old/RTF-Spec-1.0.rtf 2010年3月13日閲覧。 
  7. ^ Microsoft Corporation (June 1992) (TXT), Microsoft Product Support Services Application Note (Text File) - GC0165: Rich-Text Format (RTF) Specification, http://latex2rtf.sourceforge.net/RTF-Spec-1.0.txt 2010年3月13日閲覧。 
  8. ^ Microsoft Corporation (RTF), Rich Text Format Specification v. 1.2, http://www.snake.net/software/RTF/Old/RTF-Spec-1.2.rtf 2010年3月13日閲覧。 
  9. ^ (PDF) Rich Text Format Specification v. 1.2, http://latex2rtf.sourceforge.net/RTF-Spec-1.2.pdf 2010年3月13日閲覧。 
  10. ^ Microsoft Corporation (January 1994) (RTF), Rich Text Format (RTF) Specification - RTF Version 1.3, http://www.snake.net/software/RTF/RTF-Spec-1.3.rtf 2010年3月13日閲覧。 
  11. ^ Microsoft Corporation (January 1994) (TXT), Rich Text Format (RTF) Specification - RTF Version 1.3, http://latex2rtf.sourceforge.net/RTF-Spec-1.3.txt 2010年3月13日閲覧。 
  12. ^ Microsoft Corporation. “Rich Text Format (RTF) Version 1.5 Specification”. 2010年3月13日閲覧。
  13. ^ Microsoft Corporation (1999-05-31), Rich Text Format (RTF) Specification, version 1.6, http://msdn.microsoft.com/en-us/library/office/aa140277%28v=office.10%29.aspx 2014年5月21日閲覧。 
  14. ^ Microsoft Corporation (2001-08-31) (EXE (ZIP)), Word 2002 Tool: Rich Text Format Specification - 8/2001– Word 2002 RTF Specification, http://download.microsoft.com/download/Word2002/Install/1.7/W98NT42KMeXP/EN-US/W2KRTFSF.exe 2014年5月21日閲覧。 
  15. ^ Word 2002 Tool: Rich Text Format Specification, https://web.archive.org/web/20101112181441/http://www.microsoft.com/downloads/en/details.aspx?familyid=E5B8EBC2-6AD6-49F0-8C90-E4F763E3F04F&displaylang=en 2012年9月26日閲覧。 
  16. ^ Microsoft Corporation (2004年4月20日). “Word 2003: Rich Text Format (RTF) Specification, version 1.8”. 2014年5月21日閲覧。
  17. ^ RTF 1.9 Specification (Word 2007)”. Greg Duncan (2007年1月9日). 2010年3月13日閲覧。
  18. ^ Microsoft Corporation (2008年3月20日). “Word 2007: Rich Text Format (RTF) Specification, version 1.9.1”. 2014年5月21日閲覧。
  19. ^ a b 『RTF Ver. 1.3 仕様書』 アスキー出版局、1995年。 ISBN 4-7561-1010-X
  20. ^ Microsoft® Office Rich Text Format (RTF) Specification Version 1.9.1” (2008年3月19日). 2022年2月20日閲覧。
  21. ^ About Rich Edit Controls - Win32 apps | Microsoft Learn
  22. ^ How to Use Rich Edit Clipboard Operations - Win32 apps | Microsoft Learn
  23. ^ RichTextBox Class (System.Windows.Forms) | Microsoft Learn
  24. ^ RichTextBox Class (System.Windows.Forms) | Microsoft Learn

関連項目

編集

外部リンク

編集