ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
RTF (Rich Text Format) は 1987 年に Microsoft が策定した文書交換用フォーマット。書式付き文書を「テキスト + 制御文字」で表現することで、異なるワープロソフト間で書式を保ったままやり取りできるよう設計された。
誕生から約 40 年が経過した今でも、Microsoft Word / WordPad / LibreOffice Writer / macOS TextEdit など、ほぼ全ての主要ワープロが読み書きをサポートする。一方、Word の主力は DOCX に移っており、RTF は「相手の環境が分からない時の保険」「Word を持たない相手にも書式を渡す手段」として残っているのが実情。
2008 年に Microsoft は RTF 仕様の更新を停止しており、Microsoft 365 では新規機能が反映されない。
内部構造
RTF は 制御文字付きの ASCII テキスト。{ でグループを開始、\ から始まる制御語で書式を指定する。テキストエディタで開くとそのまま中身が見える。
{\rtf1\ansi\ansicpg932\deff0
{\fonttbl{\f0\fnil\fcharset128 MS Mincho;}}
{\colortbl;\red0\green0\blue0;\red255\green0\blue0;}
\viewkind4\uc1
\pard\f0\fs24
これは普通のテキストです。\par
\b 太字\b0 と \i 斜体\i0 と \cf2 赤い文字\cf1 を含む。\par
}
主要な制御語の意味:
\rtf1— RTF バージョン 1\ansi/\ansicpg932— 文字コード (cp932 = Shift_JIS)\fonttbl— フォントテーブル\b...\b0— 太字 ON / OFF\i...\i0— 斜体 ON / OFF\par— 段落区切りሴ5— Unicode 文字 (10 進)\cf2— colortbl の 2 番目の色
主な用途
- 互換性重視の文書交換 — 相手の環境 (Word / LibreOffice / WordPad) が不明な時
- システムからの帳票出力 — メモ帳でも読めるリッチテキストを生成する用途
- WordPad の既定保存形式 — Windows の標準軽量ワープロ
- クリップボード経由の書式付き貼り付け — アプリ間で書式を維持してコピペする内部表現として OS が使う
- 外部ツールから Word 文書生成 — DOCX を作るより RTF を組み立てるほうが単純で軽い
関連形式との比較
| 形式 | 仕様提供 | 実体 | 書式 | 編集容易性 | セキュリティ |
|---|---|---|---|---|---|
| RTF | Microsoft (1987-2008) | 制御文字付きテキスト | あり | テキストエディタで可 | 過去に重大脆弱性多数 |
| DOCX | Microsoft / ISO | ZIP + XML | あり | 専用ツール推奨 | VBA マクロは要注意 |
| DOC (旧) | Microsoft | バイナリ | あり | 専用ツール必須 | マクロ脆弱性 |
| TXT | — | プレーンテキスト | なし | テキストエディタで可 | 原則安全 |
| Markdown | — | プレーンテキスト | 軽量マークアップ | テキストエディタで可 | 原則安全 |
| HTML | W3C | マークアップテキスト | あり | テキストエディタで可 | JS 実行に注意 |
編集・パーサ・ツール
Python では striprtf でテキスト抽出、pyth や独自パーサで構造的に処理する。pandoc も RTF を読み書きできる。
# RTF からプレーンテキスト抽出
from striprtf.striprtf import rtf_to_text
with open('document.rtf', 'r', encoding='utf-8') as f:
rtf = f.read()
text = rtf_to_text(rtf)
print(text)
# pandoc で相互変換
pandoc document.rtf -o document.docx
pandoc document.rtf -o document.md
pandoc document.md -o document.rtf
# unrtf で RTF -> HTML / TXT
unrtf --html document.rtf > document.html
unrtf --text document.rtf > document.txt
注意点・落とし穴
- セキュリティ脆弱性が多発した過去 — RTF の OLE オブジェクト埋め込み・外部リンク機能が攻撃ベクタとなり、CVE-2017-0199 (HTA 経由でリモートコード実行) や CVE-2017-11882 (数式エディタの脆弱性) など、メール添付の RTF を開くだけで PC が乗っ取られる重大脆弱性が複数発見されてきた
- 不審な .rtf は開かない — Word の保護ビューを必ず有効化する。社内ポリシーで .rtf 添付を遮断するケースもある
- 文字コードの罠 — 日本語 RTF は cp932 (Shift_JIS) で出力されることが多く、UTF-8 環境で文字化けする
- 仕様更新停止 — 2008 年以降 Microsoft は RTF 仕様を更新していない。新しい Word 機能 (リボン的な装飾) は RTF には反映されない
- 機械処理に不向き — テキストではあるが制御文字との混在で、安定したパースが難しい。大量解析が必要なら DOCX か Markdown に変換してから扱う
- サイズ効率が悪い — 同じ内容でも DOCX の数倍になることがある
関連リンク
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?