メインコンテンツへスキップ

ファイル形式

RTFとは?リッチテキスト形式の仕組み

RTFは、Microsoftが1987年に作った、書式付きのテキストをプレーンなASCII文字で記述する文書形式です。その構造と限界、変換するときの注意点をまとめます。

著者: Hemen Dönüştür Editör Ekibi公開日: 9 分で読めます

RTFと書かれたファイルバッジ

RTFという名前を聞くことはあまりないかもしれませんが、実は何度も扱っているはずです。古いソフトの「エクスポート」メニュー、Macのテキストエディットの標準の保存形式、ワープロソフト間で文書を移すときの「いちばん無難な選択肢」として。Rich Text Formatは、太字、斜体、フォント、色、表といった書式を、プレーンテキストの文字だけで記述します。この記事では、RTFの誕生の経緯、RTFファイルの中身、得意なことと苦手なこと、変換するときの注意点を説明します。

RTFとは

RTFは、異なるプログラムやOSの間で文書をやり取りするためにMicrosoftが開発したテキストベースの形式です。DOCのようなバイナリ形式ではないため、RTFファイルをメモ帳で開くと、バックスラッシュで始まる命令に混じって自分の書いたテキストが読めます。ただしHTMLとは違い、手で書くことを想定した形式ではありません。目的は、あるプログラムで作った文書を、書式ごと別のプログラムで読めるようにすることです。

最初に、よくある混同を一つ解いておきましょう。メールソフトやWebフォームの「リッチテキスト」というオプションは、たいてい書式付きテキストを指す一般的な言葉で、中身はHTMLであることが多いものです。この記事で扱うRTFは、.rtfという拡張子と独自の構文を持つ特定のファイル形式です。

簡単な歴史

RTFは1980年代半ばから後半にかけて、Microsoft Wordチームのリチャード・ブロディ、チャールズ・シモニー、デビッド・ルーバートによって開発されました。最初のRTFリーダーとライターは、1987年にMacintosh版Word 3.0とともに出荷され、RTF 1.0を実装していました。その後の20年間、形式はWordとともに成長していきます。

バージョン時期備考
1.01987年最初のバージョン、Word 3.0(Mac)とともに
1.11989年フォント埋め込み、Word 4とともに
1.2 - 1.41993年 - 1995年9月Word 5、Word 6、Word 95とともに出荷されたバージョン
1.51997年4月Word 97でUnicodeに対応(\u制御語)
1.6 - 1.81999年5月 - 2004年4月Word 2000、2002、2003とともに出荷されたバージョン
1.9.12008年3月最終版、Word 2007と互換

1.9.1のあと、MicrosoftはRTF仕様の拡張をやめました。米国議会図書館(Library of Congress)の形式解説によれば、MicrosoftはWord 2010以降に導入された機能はRTFで保存すると保持されないとしています。つまりRTFは、今もサポートされてはいるものの、もう進化はしていない形式です。

RTFファイルの中身

RTFは3つの要素でできています。

  • グループ:波かっこ{ }で囲まれた部分です。グループの中で行った書式の変更は、グループが閉じると終わります。
  • 制御語:\b(太字)や\fs24(フォントサイズ、単位は半ポイントで24は12pt)のように、バックスラッシュで始まる英字の並びです。数値のパラメーターを取ることができ、\b1で太字がオン、\b0でオフになります。
  • 制御記号:\~(改行しないスペース)や\'e9(コードページ上の文字を16進数で指定)のように、バックスラッシュの後に英字以外の1文字が続くものです。

簡単なRTF文書は次のようになります。

{\rtf1\ansi\ansicpg1252\deff0
{\fonttbl{\f0 Times New Roman;}}
{\colortbl;\red200\green0\blue0;}
\f0\fs24 This is a {\b bold} word and some {\cf1 red} text in a caf\'e9.\par
}

ファイルは{\rtf1で始まり、文字セット(\ansi)とコードページ(\ansicpg1252、西欧言語向けのWindowsコードページ)が続きます。フォントテーブル(\fonttbl)とカラーテーブル(\colortbl)は先頭で宣言され、本文では番号で参照されます。\parは段落の終わりです。文書の残りの部分には、セクションの設定、ヘッダーとフッター、段落、表が入ります。米国議会図書館によれば、RTFは表を段落の一種として扱います。

ASCII以外の文字には2通りの書き方があります。古い方法は、\'e9のような16進エスケープで、宣言されたコードページ内の文字を指します(コードページ1252ではE9が「é」)。RTF 1.5で追加された方法は\u305?のようなUnicode制御語で、数値が文字のUnicode値を表し(305はトルコ語の点のない「ı」)、その後の文字はUnicodeに対応していないリーダー向けの代替文字です。RTFはテキストをUTF-8のようなUnicodeのエンコーディングで保存するわけではなく、ファイル自体は通常7ビットのASCIIです。

RTFが使われる場面

  • プログラム間での文書の受け渡し:異なるワープロソフトやOSの間で、書式付きのテキストを移すとき。
  • ソフトウェアのレポート出力:RTFの生成はDOCXよりはるかに簡単なので、多くの業務用アプリケーションがWordに依存せずに書式付きレポートをRTFで出力します。
  • クリップボード:WindowsやmacOSで書式付きテキストをコピーするときに使われる一般的な形式の一つがRTFです。
  • シンプルなエディター:ワードパッドやテキストエディットは標準でRTFを使います。

長所と短所

長所短所
ほぼすべてのワープロソフトで読める2008年以降、開発されていない
テキストベースなので文字を取り出しやすい画像入りのファイルはとても大きくなりがち
マクロ言語がない埋め込みOLEオブジェクトやテンプレート参照がセキュリティ上のリスクになりうる
生成が簡単で、ソフトウェアの出力に最適プログラムがどのバージョンと機能に対応しているか分かりにくい
バージョン間で前方・後方互換Wordの高度な機能は失われる

セキュリティについて補足します。RTFはマクロを持てませんが、リスクがないわけではありません。Wikipediaにまとめられた記録によれば、RTFファイルはテンプレートインジェクションや埋め込みOLEオブジェクトを使った攻撃に利用されており、古いワードパッドやWordの関連する脆弱性は2017年と2015年に修正されています。出どころの分からないRTFファイルは、他の文書と同じように慎重に扱いましょう。

RTFを開けるソフト

Microsoft Word、LibreOffice Writer、AppleのPages、テキストエディット、WPS OfficeはRTFを開いて保存できます。長くWindows標準のRTFエディターだったワードパッドは、現在のWindows 11には含まれていないため、WordかLibreOfficeが必要です。米国議会図書館は、Web版とタブレット版のWordではRTFファイルを開けないことにも触れています。GoogleドキュメントはRTFを読み込むことも、文書をRTFでダウンロードすることもできます。

よくあるトラブルと対処法

アクセント付きの文字や非ラテン文字がおかしく表示される

生成したプログラムが誤ったコードページを宣言していたり、Unicode制御語ではなく別のコードページの16進エスケープを使っていたりすると、文字が入れ替わってしまいます。たとえばトルコ語の「ı」が「ý」に、「ş」が「þ」になるのは、コードページ1254(トルコ語)と1252(西欧言語)が取り違えられた典型的な症状です。ファイルをWordやLibreOfficeで開いてDOCXとして保存するのが、元データを直すいちばん簡単な方法です。

ファイルが思ったよりずっと大きい

RTFは画像を通常バイナリではなく16進数のテキストとして保存するため、画像データがおよそ2倍になります。画像入りの文書なら、DOCXやPDFのほうがずっと小さなファイルになります。

プログラムによって書式が変わる

プログラムごとに対応しているRTFの範囲が異なり、認識できない制御語は無視されます。見た目を正確に保つ必要があるなら、完成版はPDFで共有しましょう。

RTFファイルを変換するときのコツ

当サイトの変換ツールでは、RTFファイルは当サイトのサーバーにアップロードされ、LibreOfficeで処理されたあと30分以内に削除されます。RTF、DOCX、DOC、PDFの間の変換は中間ステップなしで直接行われるため、ページレイアウト、ヘッダーとフッター、表、リストの番号が保たれます。

  • RTFからWordへの変換は、古いソフトウェアの出力を編集したり、ファイルサイズを小さくしたりするのに最適です。
  • RTFからPDFへの変換は、プログラムによって変わってしまう見た目を固定します。
  • RTFからTXTへの変換は、すべての制御語を取り除いて読めるテキストだけを残します。
  • WordからRTFへの変換を使うときは、Word 2010以降の機能(新しいグラフの種類や一部のレイアウトオプション)にはRTFで相当するものがない場合があることを覚えておきましょう。
  • プレーンテキストから書式付きの文書が必要なら、TXTからRTFへの変換でテキストが段落ごとに移されます。HTMLやMarkdownなどから作るRTFでも、LibreOfficeのRTFエクスポーターを通じて太字、見出し、リスト、表が保たれます。

よくある質問

RTFとDOCXの違いは何ですか?

RTFはプレーンテキストに埋め込んだ制御語で書式を記述し、2008年から変わっていません。DOCXは、XMLパーツで構成される現行のZIPベースの規格です。DOCXのほうが対応する機能が多く、画像入りの文書ではファイルがはるかに小さくなります。

RTFファイルにマクロは入りますか?

いいえ、RTFにはマクロ言語がありません。それでも埋め込みOLEオブジェクトやテンプレート参照が悪用されることはあるので、出どころの分からないRTFファイルには注意してください。

RTFは今もサポートされていますか?

はい、Wordなどのワープロソフトは今もRTFを開いて保存できます。ただし仕様の最終版である1.9.1は2008年3月に公開されたもので、Microsoftはもう形式を開発していません。

Windows 11でRTFファイルを開くには?

ワードパッドのないバージョンでは、Word、LibreOffice Writer、WPS Officeで開いてください。読むだけなら、PDFに変換してブラウザーで表示する方法もあります。

RTFで特殊文字が化けるのはなぜですか?

たいていは、ファイルを作ったプログラムが誤ったコードページを宣言しているためです。Unicode制御語を書き出すプログラムなら、この問題は起きません。

出典

関連する変換ツール

すべての記事