Portable Document Format
ストリームをASCIIの7ビットで表現するもの
フォントオブジェクトは、タイプフェースを記述する。どのフォントを使用するか記述するほかに、フォントファイルの埋め込みもできる。 埋め込めるフォントはType1、TrueType、OpenTypeがある。
PDFファイルはCOS ("Carousel" Object Structure) のサブセットである。COSのツリー構造は以下の8種のオブジェクトで構成される。
ブーリアン値
数値
文字列
名前
配列:オブジェクトに順序を与えた集合
辞書:オブジェクトに名前を与えた集合
ストリーム:大きなデータに使われる
ヌルオブジェクト
オブジェクトはobject number とgeneration numberで番号付けされ、xref table表が各オブジェクトのファイル先頭からのオフセットを記述する。
この利点はファイル内のランダムアクセスを容易にすることで、またファイルの変更があった際に変更点を追記するだけでファイル全体の書き直しを行わなくてよくなる。 PDFのデータ配置は リニア(最適化)とノンリニア(最適化なし)の2種類がある。最適化なしは、PDFの変更箇所がファイル末尾に追記された状態であり、デメリットはファイル全体をダウンロードしてからでなければファイルの表示内容を確定できないことである。最適化された場合は、末尾にあった変更点が各ページに適用されて、Webで表示させる場合などに好きなページから表示させられるメリットがある。
このように元々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ファイルを作成できる。
LaTeXで作成した文書をPDFに変換する機能も持つツールも開発されている。
PDFLaTeXはLaTeXソース文書を読み取り、そのままPDF形式に出力できる。
dvipdfm(x)はLaTeX標準の中間形式であるdvi形式のファイルをPDFに変換できる。
これらPDFを直接扱う方法ではなく、LaTeX標準のdvipsやdvipskなどの伝統的なPostScript出力用ツールでいったんPostScript形式に落とし、それをAdobe Distiller(または自由ソフトウェアであるGhostscript)といった標準的なPostScript→PDF変換ツールを使ってPDF出力させるといったやり方も一般的である
ProsperなどのLaTeX形式ファイルからプレゼンテーション用PDFファイルを生成できるツールも存在する。
ベクター画像はパスで記述された物で、直線、方形、ベジエ曲線で構成される。 図形を記述するだけでなく、文字のアウトラインを記述する場合もある。 パスはストローク、塗りつぶし、クリッピング(切り抜き)に使われる。ストロークと塗りつぶしは自由な色、模様を指定できる。 模様はタイリング、色なしのタイリング、シェーディングを指定できる。
PDFは、アドビシステムズが開発し印刷業界の標準として普及していたページ記述言語PostScriptを元に策定された。
PDFでは、コンピュータ上でのデータ交換のために次の機能が追加されている。
ファイルに含まれる各ページへのランダムアクセスに対応。この機能により、必要なページをすばやく表示できる。PostScriptでは前のページの処理結果がないと現在ページの描画が出来ない場合があるが、PDFでは各ページで完結したコンテンツにされる。
フォントの埋め込み
文書情報など、本文以外の情報を入力できる。PDFではしおり・リンク・注釈なども本文とは別の情報として扱われる
透明の概念(後にバージョン1.4で追加)
PDFには、PostScriptの持っているプログラミング言語としての機能はなく、HTMLなどと同様のデータ記述言語となっている。たとえばPostScriptのif やloopといったプログラム用命令は取り除かれている。一方linetoなどは残されている。これはファイルを開いた場合にエラーが発生する可能性を小さくし信頼性を高めるためという事と同時に、PostScriptが持つ特徴の一つである、インタプリタによる実行環境への依存性を極力排除していく方向性からである。
2007 Microsoft Office System (Microsoft Office 2007) では追加アドインを加えることでPDFを出力する機能が追加された。また、Microsoft Office 2007 サービスパック 2では標準機能として追加され、別アプリを利用することなしにPDFを作成することができる。このPDF作成機能はMicrosoft Office 2010 (x86 / x64) にも引き継がれている。
一太郎の「2011 創」以降のバージョンでは、一太郎文書から直接PDFを作成することもできる。それより前のバージョンでは、CubePDF等の無料仮想プリンタドライバを用いて作成する事ができる。
オープンソースソフトウェアのLibreOfficeは標準でPDF出力に対応しており、PDFにODFファイルを埋め込みLibreOfficeで編集可能なPDFを作成するハイブリッドPDFや長期保存向けのPDF/A、ユニバーサルアクセシビリティ対応のPDF/UAでの出力や、PDFへの電子署名にも対応している。また、LibreOffice Drawを利用して、PDFファイルを直接、編集したり機密情報を消すための墨消しも行える。
PDFを元に策定された、エンジニアリングワークフローにおける使用を目的としたファイル形式。知的権利の安全な配布やCADデータなどの複雑な3次元データなどをPDFに組み込むことを目標にしている。