Portable Document Format
Portable Document Format
Portable Document Format(ポータブル・ドキュメント・フォーマット、PDF)は、デジタルデバイス上でアプリケーションやOS、ハードウェアに依存せず文章や図版を表示するために開発され、ISO 32000で国際標準化された電子文書である。
PostScriptをベースにAdobeが開発し、1993年にAdobe Acrobatで初めて採用された。
特定の環境に左右されずに全ての環境でほぼ同様の状態で文章や画像等を閲覧できる特性を持っている。
アドビはPDF仕様を1993年より無償で公開していたが、それでもPDF規格はアドビが策定するプロプライエタリなフォーマットであった。
2008年7月には国際標準化機構によってISO 32000-1として標準化された。
アドビはISO 32000-1 についての特許を無償で利用できるようにしたが、XFA (Adobe XML Forms Architecture) やAdobe JavaScriptなどはアドビのプロプライエタリな部分として残っている。
PDFファイルは 印刷可能なあらゆる文書から生成でき、表示や印刷は各社が無料、有料で配布しているソフトウェアを利用する。
主な物にアドビが無料で配布しているAcrobat Reader(旧Adobe Reader)がある。
PDFには、次の特徴がある。
作成した文書を異なる環境のコンピュータで元のレイアウト通りに表示・印刷できる
圧縮してデータを格納することで、ファイルサイズを小さくできる
しおり、リンク、注釈といった、文書を画面に表示するときに便利な機能を設定できる
フォーム機能を使って、利用者の入力欄を受け取るような書式設定済み文書を作成できる
PDFは、Acrobat Readerに代表されるPDFビューアー(表示用のソフトウェア)がインストールされているコンピュータであれば元のレイアウトどおりに表示・印刷できる。Acrobat Readerは Windows、macOS、Android、iOS など各種オペレーティングシステム (OS) に対応したものが無償で配布されており、他のPDF閲覧ソフトも数多く存在するため、PDFファイルは多くの環境で閲覧・印刷できる。
PDF以外のテキスト形式の電子文書は、ほかのコンピュータ上で元のレイアウトを保持したまま表示・印刷するのは難しい。例えば、WordやExcelなどMicrosoft Officeの文書は、対応するソフトウェアをインストールすれば閲覧することは可能だが、バージョンや設定が違っていたり、フォントの有無が原因で編集者が意図した通りのレイアウトを保てない場合がある。HTML の文書は多くのコンピュータで閲覧できる。しかし、レイアウトの制限が大きい上、OSやウェブブラウザの種類・設定でレイアウトが変わりやすい。
そのため、厳密にレイアウトを保持する必要のある文書はPDF化することが多い。ただし、フォントの設定によっては、PDFでも元のレイアウトを保持できない場合がある。この問題は、フォントを埋め込むことで回避できる。
PDFの特長は、PDFファイル作成元と異なるコンピュータ環境において、作成元文書のレイアウトや書式を忠実に再現した表示・印刷ができることにある。その性質を好んで、ウェブページ上の文書やソフトウエアの説明書などの広く公開・頒布する形態で多く利用される。また、同様の理由から、将来のコンピュータの環境変化を想定した長期保存向け文書 (PDF/A) や、 DTP の過程でPDFファイルを作成・利用する (PDF/X) 用途も多くなっている。
Quark XPressやAdobe InDesignなどのDTPソフトウェアで組版した結果のデータは、しばしばPDFファイルとして出力される。こうして作成されたPDFファイルは、印刷物と同じレイアウトの電子文書となる。一般に、PDFファイルの公開・配布は印刷物を配布するのに比べて低コストである。
そのためPDFを利用して例えば、カタログやパンフレットなどをインターネット上で公開したり、マニュアルや雑誌の収録記事をCD-ROMで配布することが多くなっている。
印刷物制作時の入稿をPDFですることも増えてきている。従来は、QuarkXPress などで組版した結果のデータをそのまま入稿することが多かった。
PDF入稿には、
などといった利点がある。
ただし作成方法によっては、商業印刷には使えないPDFファイルが生成されることもある。たとえば、紙資料をスキャンして作成したPDFファイルから商業印刷に要求される結果を得るのは難しい。目的とする印刷品質を得るためには、フォントの埋め込みや印刷時に使用する色の情報、画像解像度などをPDFファイル作成時に適切に設定する必要がある。この設定を行うにはコンピュータの操作方法ならびに印刷物とその製造工程を的確に理解していることが必須であるため、誰でも確実に行うことができるとは言い難い。PDF/Xは、こうした問題を回避するために用いられる。
Acrobatは「フォーム」機能を利用し、文書入力のインタフェースとしても利用される。フォームとは記入用紙のことで、PDF内に記入欄を設け、エンドユーザーに入力させてメールで送付させる、あるいはPDFのインタラクティブ機能を使ってサーバに送信させることでデータを収集することができる。
またPDFファイルにはJavaScriptを埋め込むことができる。これにより入力のナビゲーションや入力時の値チェックなどが可能になる。
PDFは 1990年代初めに、文書共有を目的として開発された。文書の書式とインラインの図表を保持し、異なるプラットフォームのコンピュータのユーザー間で文書を閲覧するために互換性のあるアプリケーションを利用できない場合にも文書を共有できる。競合としてDjVu (開発続行中)、Envoy、Common Ground社の DigitalPaper, Farallon Replicaの他にアドビ自身が推進するPostScript format (.ps) がある。初期、 World Wide WebとHTMLが興隆する以前のPDFの主要な用途はデスクトップパブリッシングのワークフローであった。
PDFの初期の普及の足取りはゆっくりしたものであった。アドビのPDF閲覧・作成ソフトAdobe Acrobatは無償ではなく、また初代バージョンのPDFは文書外部へのハイパーリンクを提供しないためインターネットの特長を活かしていなかった。またプレーンテキストと比べてサイズは大きいためモデムによるダウンロードは時間がかかり、また当時ハイスペックだったPCでも表示は遅かった。
バージョン 2.0より、アドビはAcrobat Readerを無償配布するようになった。初代バージョンとの互換性は保たれており次第に書式を固定した電子文書のデファクトスタンダードの地位を確立した。
2008年にアドビのPDF Reference 1.7はISO 32000:1:2008として策定された。以後のPDF(PDF 2.0を含む)開発はIS のTC 171 SC 2 WG 8においてアドビと専門家らの協力により進められている。
1993-2006年にかけてアドビはPDFの仕様を数回改訂して新機能を追加している。
PDF 1.7 (ISO 32000-1) が制定された2006年以降にアドビが定義した拡張 (Extension Levels) はISO 32000-2 (PDF 2.0) のドラフトにも一部取り込まれているものもあるが、開発者はアドビの拡張部分がPDFの標準でないことに注意する必要がある。
国際標準化機構 (ISO) によるPDF 1.7の標準化以降、仕様の改訂はISOが預かるところとなった。アドビ独自のバージョンアップは、ベースとなるバージョン (1.7) に対する "Adobe Extensions" という形で行われている。
ISO 15929 および ISO 15930 標準 - 2001年策定:PDFを元に策定された、印刷用途を目的としたファイル形式。印刷時のデータ交換をスムーズにするため、通常のPDFで使える機能を一部制限している。
一連のISO 19005 標準 - 2005年策定:PDFを元に策定された、電子文書の長期保存を目的としたファイル形式。主に印刷目的として利用されていたPDFを、長期保存用に特化させたもの。ISO 19005 標準は特に欧州を中心に使われており、対応するソフトウェアも欧州製のものが多い。
ISO 24517 - 2008年策定:PDFを元に策定された、エンジニアリングワークフローにおける使用を目的としたファイル形式。知的権利の安全な配布やCADデータなどの複雑な3次元データなどをPDFに組み込むことを目標にしている。
PDF/H:ISO未策定。ヘルスケアに関するデータを交換、保存するのを目的としたファイル形式。
ISO 14289-1 - 2012年8月策定:ユニバーサルアクセスへの対応を目的としたファイル形式。視力や運動能力に障害のある人にも利用できるように特化させたもの。
ISO 16612-2 - 2010年策定:可変データやトランザクション文書を扱うのを目的としたファイル。
PAdES:ISO32000-2に含まれる予定。PDF文書の長期保管を目的としたPDFの拡張。欧州電気通信標準化機構により策定ならびに公開される予定。
PDF 1.7の仕様書の最終版は 2008年1月に ISO Technical Committee 171にて採択され,2008年7月1日にISO 32000-1:2008 Document management – Portable document format – Part 1:PDF 1.7として公開された。
ISO 32000-1:2008 はPDFの機能を全て定義した初の規格である。それ以前にISO PDF規格になったもの (PDF/A, PDF/X, 等) は特定分野に適用される物である。ISO 32000-1はAdobe PDF仕様1.0から1.6で定められた物を網羅しているが、以前のバージョンの一部の機能はアドビにより削除されており、PDF 1.7についても同様である。
ISO 32000-1の文書はアドビの PDF Reference, sixth edition, Adobe Portable Document Format version 1.7, November 2006 を元にしており、ISO Technical Committee 171 (ISO/TC 171), Document management application, Subcommittee SC 2, Application issuesによるファストトラック (Fast-track procedure) 制度ISO/IECのファストトラックは、既に標準化された既存の規格に基づき、通常よりも迅速に審議を行い国際標準化する方式。により審査された。
ISO PDF 規格の要約 (abstract) には以下のように記述されている。:
ISO 32000-1 の中にはアドビのプロプライエタリな仕様の部分がいくつか引用規格とされており、(Adobe Acrobat JavaScriptやXFA (XML Forms Architecture) など) ISO 32000-1に準拠するためにはこれらが不可欠となっている。
新しいバージョンのPDF規格はISO/CD 32000-2 - Document management – Portable document format – Part 2:PDF 2.0として策定され、2017年7月に公開された。
新機能としては以下のようなものが紹介されている。
暗号化された文書を非暗号化された文書でラップできる。すなわち、だれにでも読める表紙ページが付いたセキュアなPDF文書を作成できる
リッチメディア注釈の導入。地理情報やPRC(3Dフォーマット)のサポート
PDF/A-3にて最初に導入された、添付ファイルについての機械解釈可能なメタデータが付加できるようになった
タグ付きPDFに関する14.8章の完全な作り直し。タグセットの見直し、名前空間の導入、MathMLのサポートと発音ヒントの導入など。アクセシビリティの向上に伴いテキスト抽出や軽量デバイス向けのHTMLにコンバートするのが容易になるなど。
デジタル署名が最新の規格に適合するようアップデートされた。ユーザーにデジタル署名されたPDFの検証が可能になった。
現時点でのスタンダードであるAES-256暗号化のサポート
既存の仕様から改良されたものは以下の通り。
注釈について透過、合成モード属性の追加
Polygon/Polyline real paths
256bit AES暗号化
ECC 準拠の証明書
ページ単位、および外部から指定可能な出力インテント
画像、フォームの XObjects に対する Measurement & Point Data
GoToDp および RichMediaExecute アクション
GoTo および GoToR を拡張して一部の構造化エレメントへのリンクが可能に
三次元寸法および3D表示条件の拡張(透過を含む)
構造化要素の追加。DocumentFragment、Hn(深度6以上の見出し)、Title、 FENote、SUb、Em、Strong、Artifact
出力インテントの拡張 (MixingHints および SpectralData)
ムービー、サウンド、(PDF/Xの) TrapNet 注釈(リッチメディア注釈により代替)
ムービー、サウンド アクション
Info辞書
ProcSet (PDFページ記述演算子)
ファイル仕様とLaunch アクションに関するOS依存の仕様部分
XObjects とフォント の名前
合成モードのアレイ(配列)
Open prepress interface (OPI)
CharSet (For Type 1 fonts)
CIDSet (for CID fonts)
Prepress viewer preferences (ViewArea、ViewClip、など)
NeedAppearances (フォームの見え方についての指定)
adbe.pkcs7.sha1 および adbe.x509.rsa_sha1 署名ハンドラ
FDF ファイルの暗号化
PDF 2.0の提案は2009年にISOに受理された。(ISO/NP 32000-2) TC 171 SC 2 WG 8 委員会は文書の作成のほか、寄せられる多数の技術的、編集面のコメントへの対応、各種課題ごとに関心を寄せる組織たちで構成されるアドホックな下位委員会8つの運営などのために活動している。
規格の開発は"照会段階"/"国際規格案"の段階まで進んでいたが、文書の整備に本プロジェクトは中止され、新しいプロジェクトが立ち上げられた。2014年中に2つめの"委員会原案"が提出される予定である。
AdobeはAdobe Extension Level 5 と Adobe Extension Level 3 をISO 32000-2 に盛り込もうとしたが、そのうち一部の機能だけが採用されている。
ISO委員会のPDF 2.0開発の目標には、機能の進化的な拡張のほかに、PDF言語のリファインや現在使われなくなっている機能(例:フォームのXObject names等)の廃止による、またアドビのプロプライエタリな仕様(例:Adobe JavaScript、リッチテキスト等)の標準化が含まれている。
PDF 2.0ではアドビの XML Forms Architecture 3.1 を参照しようとしており、2011年にISOの委員会はアドビにXFA仕様書の提出を求め、またXFA仕様を安定化させるよう求めている。
(TCは「専門委員会」、SCは「分化委員会」、WGは「作業グループ」の略)ISOの組織については国際標準化機構を
2008年にISO標準を策定するために設置された。
作業グループ8は年に二度会合を開き、10カ国以上より参加者が集まる。ISO 32000の委員会のミーティングは認定された主題専門家に対しオープンとされている。関心を持つ団体は、ISOの会員団体に参加について問い合わせる。
現在のプロジェクトのリーダーシップはシェリー・エクホルム(マイクロソフト) 、副リーダーはダフ・ジョンソン(独立コンサルタント)が担当している。
以前のリーダーは 2008年より2011までジェイムズ・キング博士(アドビシステムズ)が担当した。ISO幹事はベッツィー・ファニング(AIIM)。
PDFの読み書きを行うソフトウェアは誰でも開発することができ、アドビにライセンス料などを支払う必要はない。アドビはPDFについて特許を保有しているが、仕様は無料で自由に参照することが出来る。
PDFは3つの技術的な柱から成り立っている。
異環境での表示のためのフォントの埋め込み、代替の仕組み
文書、グラフィック、添付ファイルを単一ファイルにまとめて圧縮する構造化ストレージ
PDFは、アドビシステムズが開発し印刷業界の標準として普及していたページ記述言語PostScriptを元に策定された。
PDFでは、コンピュータ上でのデータ交換のために次の機能が追加されている。
ファイルに含まれる各ページへのランダムアクセスに対応。この機能により、必要なページをすばやく表示できる。PostScriptでは前のページの処理結果がないと現在ページの描画が出来ない場合があるが、PDFでは各ページで完結したコンテンツにされる。
文書情報など、本文以外の情報を入力できる。PDFではしおり・リンク・注釈なども本文とは別の情報として扱われる
透明の概念(後にバージョン1.4で追加)
PDFには、PostScriptの持っているプログラミング言語としての機能はなく、HTMLなどと同様のデータ記述言語となっている。
たとえばPostScriptのif やloopといったプログラム用命令は取り除かれている。一方linetoなどは残されている。
これはファイルを開いた場合にエラーが発生する可能性を小さくし信頼性を高めるためという事と同時に、PostScriptが持つ特徴の一つである、インタプリタによる実行環境への依存性を極力排除していく方向性からである。
このように元々PDFはPostScriptから発展・派生したという経緯を持つため、PostScriptとPDFは似た特性を持っており、相互の変換は比較的容易である。実際、Acrobatに含まれるDistillerでは、各種アプリケーションのデータをいったんPostScriptファイルに変換(WindowsやMacintoshではプリンタードライバを経由する形で行われる)し、それを元にPDFを生成している。しかし、PDFを作成するには、必ずしもPostScriptを経由する必要はなく、例えばGDI経由で直接PDFを作成することも可能であり、実際にそういった形で動作(GDI→PDF)する製品は多数存在する(「いきなりPDF」もこのタイプである)。
旧バージョンのQuark XPressなどからPDFファイルを作成するには、PostScriptファイルを生成したうえで"Distiller"というAdobe Acrobatに添付のソフトを使ってPDFファイルに変換するのが一般的である。また、Adobe InDesign、Illustrator、PhotoshopやQuark XPress(バージョン6以降)を使うと、Acrobatなどは使わずに直接PDFファイルを作成できる。
PDF文書は1以上のページで構成され、各ページにはテキスト・・図形が含まれる。
PDFファイルの生成には、アドビシステムズ社純正の「Adobe Acrobat」やサードパーティー製品を利用する方法がもっとも基礎的である。さらに、クラウド形態などによりサーバサイドでPDFファイルを作成するシステムや、PDFファイル生成とは異なる主目的をもつソフトウエアが PDFファイルを生成する補助機能を搭載している場合もある。
PDFファイルの表示や印刷は、第一にAcrobat Readerなどの専用のビューアーアプリケーションを用いる方法がある。ウェブ上で公開されているPDFファイルについては、パソコンのウェブブラウザ上で閲覧できることがある。当初はAcrobat Readerのプラグインを用いていたが、現在Google Chrome、Mozilla Firefox、Microsoft Edgeなど、PDF表示機能を内蔵する製品も登場している。しかし、これらの製品でも、スマートフォン向けでは、PDF表示機能が除外されている。
PDFの仕様は、ISOで標準化される以前からアドビシステムズから公開されてきている。そのため、アドビシステムズ以外のさまざまな企業・団体や有志が、PDF関連のソフトウェアを開発・公開しており、オープンソースソフトウェア、フリーウェアも数多い。
PDFファイルはCOS ("Carousel" Object Structure) のサブセットである。COSのツリー構造は以下の8種のオブジェクトで構成される。
配列:オブジェクトに順序を与えた集合
辞書:オブジェクトに名前を与えた集合
ストリーム:大きなデータに使われる
オブジェクトはobject number とgeneration numberで番号付けされ、xref table表が各オブジェクトのファイル先頭からのオフセットを記述する。
この利点はファイル内のランダムアクセスを容易にすることで、またファイルの変更があった際に変更点を追記するだけでファイル全体の書き直しを行わなくてよくなる。
PDFのデータ配置は リニア(最適化)とノンリニア(最適化なし)の2種類がある。最適化なしは、PDFの変更箇所がファイル末尾に追記された状態であり、デメリットはファイル全体をダウンロードしてからでなければファイルの表示内容を確定できないことである。最適化された場合は、末尾にあった変更点が各ページに適用されて、Webで表示させる場合などに好きなページから表示させられるメリットがある。
PDF内の画像の記述方法はPostScriptに近く、相違箇所は透明の有無である。透明はPDF 1.4で追加された。
ベクター画像はパスで記述された物で、直線、方形、ベジエ曲線で構成される。
図形を記述するだけでなく、文字のアウトラインを記述する場合もある。
パスはストローク、塗りつぶし、クリッピング(切り抜き)に使われる。ストロークと塗りつぶしは自由な色、模様を指定できる。
模様はタイリング、色なしのタイリング、シェーディングを指定できる。
ラスターイメージ(Image XObjectsと呼称)は、PDF内では辞書と、関連づけられたストリームで表現される。辞書には画像のプロパティが記述され、ストリームにはイメージデータが記述される。画像は複数の圧縮方式でフィルターされる。サポートされるフィルターは以下のものがあり、用途に応じて画質とサイズのバランスを選ぶことができる。
ASCII85Decode:ストリームをASCIIの7ビットで表現するもの
ASCIIHexDecode:ASCII85Decodeに近いがよりコンパクトになる
FlateDecode:zlib/deflate(いわゆるgzip形式。ZIPではないので注意)アルゴリズムで圧縮するもの。;PDF 1.2より実装
LZWDecode:LZWアルゴリズムで圧縮するもの。
RunLengthDecode:ランレングスアルゴリズムによるシンプルな圧縮
DCTDecode:JPEGに採用された 非可逆圧縮
CCITTFaxDecode:CCITT (ITU-T) faxで規定された 可逆 2値 (黒/白)圧縮。Group3とGroup 4がある
JBIG2Decode:JBIG2標準で定義された黒白二値の形式。可逆、非可逆が選べる。PDF 1.4より実装
JPXDecode:JPEG 2000標準で定義された形式。可逆、非可逆が選べる。PDF 1.5より実装
テキストはPDF内のコンテント ストリーム内でテキスト エレメントとして記述される。テキストエレメントはどの文字がどの座標に表示されるかを定義し、どのフォントとエンコーディングを使うかも記述する。
フォントオブジェクトは、タイプフェースを記述する。どのフォントを使用するか記述するほかに、フォントファイルの埋め込みもできる。
埋め込めるフォントはType1、TrueType、OpenTypeがある。
以下の14書体については、ソフトウェアは必ず装備するか、同じ寸法の代替フォントを装備しなければならない。ソフトウェアは以下のフォントの寸法について情報を保持し、もしPDFに埋め込まれていない場合は同じ寸法の代替フォントで表示する。
Times (v3) (標準、斜体、太字、太字斜体)
Courier (標準、斜体、太字斜体)
Helvetica (v3) (標準、斜体、太字斜体)
電子文書を正しく表示するためには、フォントが正しく設定されている必要がある。一般に、文書作成時に使用されているフォントがインストールされていないコンピュータでは、文書を正しく表示・印刷できない。例えばヒラギノフォントを使って作成した文書は、このフォントがインストールされていないコンピュータでは代替の日本語フォントで表示する必要がある。さらに、日本語フォントがインストールされていないコンピュータではエラーや文字化けが発生し、正しく表示できない。
PDFの文書では、使用しているフォントを埋め込むことで、そのフォントがインストールされていないコンピュータでも正しく表示・印刷できる。フォントを埋め込む方法は2つあり、当該フォントに含まれているすべてのグリフ(字形)を埋め込む方法と、文章に使用されているグリフのみを埋め込む方法である。これらの選択は、PDFを作成する際に行う。フォントを埋め込んで作成したPDFの日本語文書は、日本語フォントがインストールされていないコンピュータでも正しく表示できる。
ただし、フォントを埋め込んだPDFファイルはファイルサイズが大きくなるという問題がある。また、フォントを埋め込む場合は、フォントのライセンスにも注意する必要がある。
テキストストリーム内では、文字は文字コード(番号)によって記述される。WinAnsi、MacRomanのほか東アジアの各種言語のエンコーディングが定義されているほかに、フォント自身に独自のエンコーディングを持つことも出来る。
基礎がType1フォントを前提に作られたので、TrueTypeフォントなどを記述する場合は、非常に複雑な記述になる。
文字コードについては、全ての文字列が独自のルールで英数字にエンコードされる。英語文書の場合はある程度解読できるが、多バイト文字になると非常に複雑なルールでエンコードしなければならない。
それで得られるメリットは、処理系にかかわらず文字を正確に区別できることで、例えばJIS90形式の文字とJIS2004形式の文字はJIS、Unicode上では同じ文字コードでありながら字形が異なる文字があり、普通の処理系ではどちらかのフォントしか表示できないが、PDF上では一緒に記述できることが挙げられる。
しかしながら例えばWindows 2000とWindows Vista間ではMS明朝、MSゴシックのフォントのバージョンは異なり、フォントを埋め込まないようにPDFを作成すると、片方の環境では文字が全面的に文字化けするケースがある。
また、フォントが埋め込まれているため文字化けしていないように見えても、文面をクリップボードにコピーしてエディタに貼り付けると、テキストストリームが異機種のエンコーディングになっていて文字化けするケースもある。
Adobe製品は比較的問題が起こりにくいが、サードパーティー製品や海外製のソフトウェアでは現在もこの種の問題に遭遇することがある。
PDFファイルには、音楽、動画などのマルチメディアファイルを含めることができる。