ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?