PDF 2.0って何? いままでのPDFとはどこが違うの? PDF 2.0対応で注意すべきことがありますか?

更新日:

PDF 2.0って何? いままでのPDFとはどこが違うの? PDF 2.0対応で注意すべきことがありますか?

このページの目的

皆さんは、PDF 2.0という言葉を聞いたことがありますか? まだ、聞いたことがある人は少ないかもしれませんね。ここでは、まだ耳慣れない言葉かもしれないPDF 2.0について易しく解説してみます。

いまから10数年前に、Web 2.0 という言葉が流行りました。聞いたことがある人はどのくらいいるでしょうか? Wikipediaを見ますと、Web 2.0は新しいWebの時代を告げる言葉として、それまでの静的なウェブページから利用者との情報のやり取りを伴うダイナミックなWebを表すものとして脚光をあびたようです(注1)。

しかし、Web 2.0は、技術的な規定が明確にあるわけではなく、一種の流行語「バズワード」でした。流行語の例に漏れず、Web 2.0はもはや忘れ去られた存在です。

PDF 2.0は違います!PDF 2.0はレッキとした定義のある専門用語なのです。今後、PDF 2.0が忘れ去られることはなく、これからPDF 2.0の時代がやってくるでしょう(キッパリ)。

PDF 2.0とは何か

PDF 2.0は、国際標準化機構(International Organization for Standardization;ISO)が定めるISO 32000-2という規格(ISO 32000-2仕様書)(注2)で決められている用語です。

PDFファイルがPDF 2.0準拠であるとは、ISO 32000-2仕様書で決めているPDFのバージョン番号が2.0に該当し、そしてISO 32000-2仕様書の中で明確に要求されているPDF 2.0の必須機能のすべてに従うように作成されているということを意味します。

なお、オプションになっている項目を含んでいる必要はありませんので、必ずしもISO 32000-2仕様書に決められた機能をすべて盛り込んで作られているとは限りません。

(参考)PDFの国際標準化への歩み

PDFのバージョン番号とは

ではバージョンとは何かということですが、PDFは、当初、アドビシステムズ社(アドビ)が発明し、1993年にバージョン1.0をリリースされました。その後、機能追加(バージョンアップ)を重ねる毎に小数点以下1桁をインクリメントして、2006年にはPDF 1.7となりました(注3)。

アドビが策定したPDFのバージョンにはPDF 1.0からPDF 1.7があることになります。これらアドビが付けたバージョン番号をPDF 1.xと表記します。

ところで、こういうバージョン番号の付け方は実にのどかですね。Google Chromeなんて、2008年12月に登場して、2020年12月にはもうバージョン87です。

閑話休題。PDFファイルのバージョンにはPDF 1.0からPDF 1.7まで(PDF 1.x)とPDF 2.0があるということになります。PDF 2.0が最新バージョンで、その一つ前のバージョンがPDF 1.7です。

(参考)アクロバットでなくてもPDFができるのはなぜ? -PDF 2.0で変わる知財戦略-

バージョンの指定方法

PDFファイルを作成・編集するときは、バージョンを次のように指定します。

  1. PDFファイルには、ファイルが準拠するPDF仕様のバージョン番号を示すラベルは2カ所に付けることができます。
  2. PDFファイルの最初の方にあるヘッダーで、PDFバージョンを指定します。例えば、PDF 2.0では、ヘッダーの先頭の行に「%PDF–2.0」と書かれます。
  3. PDF 1.4以降は、PDFバージョンをPDFファイルの中のドキュメントカタログという場所のVersionというキーの値としても指定できます。
  4. PDFファイルは、それまでの内容に手を付けずに、新しい内容を追加して更新していくことができます(増分更新)。増分更新によってPDFのバージョンを変更した場合は、カタログ辞書のVersionキーに新しいバージョン番号を書きます。このように、ファイルヘッダーで指定されたバージョンを上書きすることにより、ファイルに関連付けられたバージョンを更新できます。

PDF 2.0で追加された機能

PDF 1.7の仕様策定からPDF 2.0の仕様策定までには10年ほどの期間がかかっています。そして、この間で非常に多くの機能の追加がありました。追加された機能については、ここでは紹介しきれませんので、例えば、参考資料「PDFインフラストラクチャ解説 付録:もうすぐ出版されるPDF2.0の概要」をご覧ください。

PDFを処理するプログラムは、自分が知らない機能については無視して、知っている機能だけを処理しても良いことになっています。そこで、基本的にはPDF 1.7までしか表示できないPDFリーダーであっても、PDF 2.0のファイルをまったく表示できないということはありません。

但し、例外があります。PDF 2.0では、セキュリティを強化するため、セキュリティ設定の暗号化方式がより強力なものに変更されています。このためPDF 2.0でセキュリティを設定したPDFファイルは、PDF 1.7以前の機能しかサポートしていないPDFリーダーでは開くことができなくなります。

さらに、PDFのバージョンを2.0に指定した場合、PDF 1.7以前の暗号方式を使うことは非推奨です。従って、PDFのバージョンを 2.0にしてセキュリティを設定したファイルではPDF 1.7以前の暗号化方式を使えません。

そうなりますと、PDF 2.0の機能を使ったPDFファイルにセキュリティを設定するとPDF 2.0をサポートしないPDF処理ソフトではまったく取り扱いができないことになります。この点は注意が必要です。

(参考)PDFインフラストラクチャ解説 付録:もうすぐ出版されるPDF 2.0の概要

PDF 1.x系とPDF 2.0の互換性

PDF 1.xの間では仕様書でPDFの機能を強化する際に、古い仕様書の機能の多くを新しいバージョンでもそのまま使えるようにしていました。例えば、ISO 32000-1:2008(PDF 1.7)には非推奨(Deprecated)という記載は7か所のみです。ですので、PDF 1.6の機能はPDF 1.7でも大抵そのまま使えます。

PDF 1.6 to PDF 1.7
PDF 1.7はPDF 1.6の機能をほぼ使える

PDF 1.6のファイルを編集ソフトで読み込んで、編集操作でPDF 1.7の機能を追加します。その編集結果をPDF 1.7のバージョンを指定して保存することが簡単にできます。このようにPDF 1.7までは、PDFファイルのバージョンを上げるのは比較的簡単でした。

ところが、ISO 32000-2:2020には非推奨(Deprecated)という記載が139カ所もあります。それだけではなく、例えば、タグ付きPDF、電子署名などの機能は大幅に書き直されています。

PDF 1.7 to PDF 2.0
PDF 1.7の機能でPDF 2.0で使えない機能が多い

このため、PDF編集ソフトでPDF 1.7のファイルを読み込んで、PDF 2.0の機能を追加し、編集後のファイルをPDF 2.0として保存するのが大変です。すなわち編集前のPDF 1.7ファイルで指定されていた機能のうちでPDF 2.0では非推奨のものがあると、それをPDF 2.0の要求に合致するように変更しなければなりません。

このことは、PDF 1.xからPDF 2.0への移行が困難になっていることを意味します。

バージョン間での非推奨について

ISO 32000-2:2020の用語集では、Deprecatedは次のように説明されています。

3.15 deprecated
PDF 2.0ドキュメントに書き込むべきではなく、PDFプロセッサによって無視されるべきISO32000の一部

ISO - ISO 32000-2:2020 - Document management — Portable document format — Part 2: PDF 2.0

実際に、Deprecatedの指定された項目を見ていきますと、別の説明がされている箇所もあります。例えば

adbe.x509.rsa_sha1, adbe.pkcs7.sha1はPDF 2.0で非推奨である。後方互換性をサポートするため、PDFリーダーはこれらのキーを処理するべきであるが、PDFライターはこのキーにこの値を用いてはならない。

(表252デジタル署名辞書のSubFilterキーの値の説明より)

このようにDeprecatedが指定された機能は、原則無視すべきという説明ですが、古いPDFバージョンでDeprecatedの機能を使っている場合は読むことができるようにすべきという箇所もあり、扱いは必ずしも一律ではないので厄介です。

注意すべき点

いずれにしても、PDF 2.0を使い始めたら古いPDFソフトでは処理できないPDFがたくさん出回ることになりそうです。PDFはネットワーク上で交換されますので、自分はPDF 2.0を使わない、と言い張ることも難しいでしょう。早めに移行の準備をする必要があるといえます。


関連情報