PDF とは何か?フォーマットの基礎解説
PDF は Portable Document Format(ポータブル文書フォーマット)の略です。どのデバイスでも同じように表示されなければならない文書を共有するために最も広く使われているフォーマットです。このページでは、PDF が実際に何であるか、どこから来たのか、内部でどう動いているかを説明します。
歴史
PDF の由来
PDF は 1993 年に Adobe Systems によって発明されました。目的はシンプルでありながら野心的なものでした:文書のフォント・画像・グラフィック・レイアウトを、それを表示するコンピュータ・オペレーティングシステム・プリンタに関わらず、著者が意図した通りに正確に保持する単一のファイルフォーマット。「Portable Document Format」という名前はその野心を反映しています。
最初の 10 年間、PDF は Adobe の独自フォーマットでした。2008 年にオープンな国際標準 ISO 32000-1 として公表され、管理は国際標準化機関(ISO)に委ねられました。現在では誰でもロイヤルティを支払うことなく PDF を読み書きするソフトウェアを構築できます。改訂版である ISO 32000-2(PDF 2.0) は 2020 年に公表され、既存ファイルを壊すことなく多くのエッジケースを明確化しました。
普及
PDF が汎用となった理由
PDF は以前のフォーマットでは解決できなかった現実の問題を解決します。Word 文書を別のコンピュータで開くと、再フローしてフォントが置換され、改ページが変わる可能性があります。ウェブページはブラウザと画面サイズに依存します。対照的に PDF は固定レイアウトの文書です:3 ページ目はどこでも 3 ページ目のままです。
その信頼性により、PDF は契約書・請求書・研究論文・官公庁のフォーム・電子書籍・印刷や保管を前提とするあらゆる文書のデフォルトとなりました。無料のリーダー(Adobe Acrobat Reader、後にブラウザやオペレーティングシステム)が閲覧を摩擦なくしました。今日では、すべての主要 OS が追加ソフトなしで PDF を開けます。
内部構造
PDF ファイルの中身
PDF は 4 つの部分から成る構造化されたテキストとバイナリのファイルです:
- ヘッダー — PDF バージョンを示す 1 行(例:
%PDF-1.7)。 - ボディ — ページ・フォント・画像・テキストストリーム・メタデータを記述する番号付きオブジェクトの列。各オブジェクトは独立で任意の順序で読めます。
- 相互参照テーブル — 全オブジェクトのバイトオフセットを示す索引で、リーダーはファイル全体を走査せずに任意のオブジェクトへ直接ジャンプできます。
- トレーラー — 相互参照テーブルとルートオブジェクト(文書カタログ)を指し、リーダーがどこから始めればよいかを示します。
この設計こそが、PDF が大きくても素早く開ける理由です:相互参照テーブルにより、リーダーは必要なオブジェクトだけを取得できます。また、差分更新が可能な理由でもあります — PDF を編集する際、新しいオブジェクトと新しい相互参照セクションを追加するだけでファイル全体を書き直せます。
バージョン
PDF バージョンの概要
ヘッダーのバージョン番号(%PDF-1.x または %PDF-2.0)は、ファイルが使用する可能性のある機能をリーダーに伝えます。実世界の PDF のほとんどは 1.4 から 1.7 です。バージョン 1.5 はファイルサイズを削減するオブジェクトストリームと相互参照ストリームを導入しました。1.6 は 3D コンテンツとより豊富な暗号化を追加しました。1.7(ISO 32000-1 の基礎)はすべてを統合しました。PDF 2.0 は仕様を整理しましたが、実用上はまだ稀です。
日常使用ではバージョンが問題になることはほとんどありません。現代のリーダーはすべて対応しています。より重要なのはオブジェクトの中身:埋め込みフォント・画像圧縮・メタデータです。
関連記事