.RTF ファイルとは?
Microsoft によって導入および文書化されたリッチ テキスト形式 (RTF) は、アプリケーション内で使用するために書式設定されたテキストとグラフィックスをエンコードする方法を表します。この形式は、他の Microsoft 製品とのクロスプラットフォーム ドキュメント交換を容易にし、相互運用性の目的を果たします。この機能により、ワード プロセッシング ソフトウェア間のデータ転送の標準となり、ドキュメントのフォーマットを失うことなく、あるオペレーティング システムから別のオペレーティング システムにコンテンツを転送できます。ファイル形式の仕様は、Microsoft によって公開 ダウンロード されており、開発者の観点から参照できます。
RTF ファイル形式の簡単な歴史
RTF ファイル形式は、公開されてから何度か改訂されています。読み取り/書き込み用の公式バージョンは、バージョン 1.0 仕様の Microsoft Word 3.0 for Macintosh の一部として公開されました。仕様の最終バージョンである 1.9.1 は、2008 年 3 月に Microsoft によって公開されました。これ以降、仕様に対する拡張は行われません。現在、ほぼすべてのオペレーティング システムには、RTF ファイル形式の使用を最小限に抑えたり、根絶したりした機能豊富なアプリケーションがあります。
RTF ファイル形式の仕様
RTF は、ワード プロセッシング ソフトウェア間のデータ転送と、あるオペレーティング システムから別のオペレーティング システムへのコンテンツ転送の標準として機能します。これは、2007 年まで Microsoft Office Word によって導入された制御語を使用して実現されます。標準の RTF ファイルは、リッチ テキストを表す ASCII と、適切なコード値に変換される非 ASCII 文字で構成されます。新しいバージョンの Word では、以前のバージョンで生成された RTF ファイルを読み取ることができますが、古いバージョンでは、理解できないコントロール ワードやグループは無視されます。
RTF の基礎を理解する
RTF ファイルは、7 ビットの ASCII プレーン テキストを使用します。
*コントロールワード
- 制御記号、および
- グループ。
これらは、理解可能なテキストおよび文字エンコーディングとして RTF データを表現するためのビルディング ブロックとして機能します。
コントロールワード
これらは、表示する文字をマークするために使用される特別にフォーマットされたコマンドを表し、32 文字を超えることはできません。コントロール ワードは次のように定義されます。
<ASCII Letter Sequence> ///<//Delimiter//> ///
各コントロール ワードは大文字と小文字が区別され、バックスラッシュで始まります。 ASCII 文字シーケンスには、ASCII アルファベット (a から z および A から Z) を含めることができます。の制御語の名前の終わりを示し、次のいずれかになります。
- 空間。これは、コントロール ワードを区切るためだけに使用され、以降の処理では無視されます。
- 数字または ASCII マイナス記号。数値パラメータがコントロール ワードに関連付けられていることを示します。後続のデジタル シーケンスは、ASCII 数字以外の任意の文字 (通常、バックスラッシュで始まる別の制御語) で区切られます。パラメータは、正または負の 10 進数にすることができます。数値の値の範囲は、公称 -32768 ~ 32767、つまり符号付き 16 ビット整数です。少数のコントロール ワードは、範囲 −2,147,483,648 から 2,147,483,647 (32 ビットの符号付き整数) の値を取ります。これらのコントロール ワードには、\binN、\revdttmN//、\rsidN 関連のコントロール ワード、および \bliptagN などの画像プロパティが含まれます。ここで、N は数値パラメーターを表します。 RTF パーサーでは、オプションで前にマイナス記号を付けた最大 10 桁を許可する必要があります。区切り文字がスペースの場合、それは破棄されます。つまり、後続の処理には含まれません。
- 文字または数字以外の任意の文字。この場合、区切り文字は制御語を終了し、制御語の一部ではありません。バックスラッシュ「\」などは、新しい制御語または制御記号が続くことを意味します。
制御記号
コントロール シンボルは、その内容に応じて特定の意味を持つ特別な出来事を表します。バックスラッシュとそれに続く特殊文字 (アルファベット以外の文字) で構成され、区切り文字はありません。
#### グループ ####
グループは、中括弧 ({ }) で囲まれたテキスト、制御語、または制御記号で構成できます。左中括弧 ({ ) はグループの開始を示し、右中括弧 ( }) はグループの終了を示します。各グループは、グループによって影響を受けるテキストと、そのテキストのさまざまな属性を指定します。
RTF ファイルの構造
RTF ファイルには、次の標準構文があります。
Microsoft によって導入および文書化されたリッチ テキスト形式 (RTF) は、アプリケーション内で使用するために書式設定されたテキストとグラフィックスをエンコードする方法を表します。この形式は、他のマイクロソフト製品とのクロスプラットフォーム ドキュメント交換を容易にし、相互運用性の目的を果たします。この機能により、ワード プロセッシング ソフトウェア間のデータ転送の標準となり、ドキュメントの書式を失うことなく、あるオペレーティング システムから別のオペレーティング システムにコンテンツを転送できます。ファイル形式の仕様は、Microsoft によって公開 ダウンロード されており、開発者の観点から参照できます。
RTF ヘッダー
RTF ヘッダーには、次の表現があります。
フィールド | 説明 |
---|---|
<header> | \rtf1\fbidis? <character set> <from> ? <deffont> <deflang> <fonttbl> ? <filetbl> ? <colortbl> ? <stylesheet> ? <stylerestrictions> ? <listtables> ? <revtbl> ? <rsidtable> ? <mathprops> ? <generator> ? |
ヘッダー テーブルが存在する場合は、この順序で表示する必要があります。 RTF ファイルには、フォント、スタイル、画面の色、画像、脚注、コメント (注釈)、ヘッダーとフッター、概要情報、フィールド、ブックマーク、ドキュメント、セクション、段落、および文字の書式設定プロパティ、数学などのグループを含めることができます。イメージ、およびオブジェクト。フォント、ファイル、スタイル、色、リビジョン マーク、概要情報グループ、およびドキュメントの書式設定プロパティがファイルに含まれている場合、それらは RTF 本文の前にある RTF ヘッダーに表示される必要があります。どのグループのコンテンツも使用しない場合は、そのグループを省略できます。別のグループで定義されたプロパティを使用するグループは、それらのプロパティを定義するグループの後に表示する必要があります。たとえば、色とフォントのプロパティはスタイル グループの前に置く必要があります。
RTF バージョン
RTF ドキュメントは、次の 6 文字で始まる必要があります。
{\rtf1
ここで、1 は RTF のバージョン番号を示します。
#### キャラクターセット ####
{\rtf1 の後に、ドキュメントは使用する文字セットを宣言する必要があります。文字セットを宣言するには、次のいずれかのコマンドを使用します。
\ansi
- ドキュメントは、通常の MSWindows 文字セットである Code Page 1252 とも呼ばれる ANSI 文字セットです。
\mac
- ドキュメントは MacAscii 文字セットであり、古い (10 より前の) バージョンの Mac OS での通常の文字セットです。
\pc
- ドキュメントは、MS-DOS のデフォルトの文字セットである DOS Code Page 437 です。優れた記憶力を持つタイピストは、これが「Alt 数値」コードを解釈するためにまだ使用されている文字セットであることに気付くでしょう。つまり、Alt を押しながらテンキーパッドで「130」と入力すると、é が生成されます。 CP437 の 130 は é です。それは、CP437 が最近目にする唯一の用途です。
\pca
- ドキュメントは、MS-DOS 多言語コード ページとも呼ばれる DOS コード ページ 850 です。
フォント コマンド
文字セット定義の後には \deffN
コマンドが続きます。これは、フォント番号 N がこのドキュメントのデフォルト フォントであることを定義します。フォント番号Nは、フォントテーブルから参照される。コマンド \deffN
は技術的にはオプションですが、次のような一般的なプロローグではフォント 0 がデフォルトのフォントとして選択されるため、安全のために存在する必要があります。
{\rtf1\ansi\deff0
フォントテーブル
ドキュメントで使用できるすべてのフォントは、各フォントがフォント番号で表されているフォント テーブルに一覧表示されます。一部のプログラムはそれがなくても機能しますが、ドキュメントにはフォント テーブルが必要です。
フォント テーブルの構文は {\fonttbl //…declarations//…} で、各宣言には次の基本的な構文があります。
{\fnumber\familycommand フォント名;}
4 つの宣言を含むフォント テーブルは次のとおりです。
{\fonttbl
{\f0\froman Times;}
{\f1\fswiss Arial;}
{\f2\fmodern Courier New;}
}
そのフォント テーブルを持つドキュメントでは、{\f2 stuff}
は Courier New で「stuff」を出力します。フォントは、フォント テーブルに一覧表示されるまでドキュメントで使用できません。
ドキュメントの終わり
すべての RTF ドキュメントは、ドキュメントの最初の文字である { によって開かれたグループを閉じるために、} で終了する必要があります。おそらく改行を除いて、最後の } に続くものはありません。