Web 最適化PDFの意味、用途、効果
更新日: 2021/2/22
【注意】本記事を最初に公開したのは2007年1月です。その後、「Web表示用に最適化したPDF」の仕様は、最新のISO 32000-1、ISO 32000-2でも特に改訂されていません。しかし、PDFの仕様は変わらなくてもインターネットの通信環境は大幅に改善されており、またブラウザでPDFを閲覧する環境も抜本的に変わっています。このため本記事で紹介している事例やデータは現時点では適切とは言えませんので注意してください。なお、関連する記事として、「ブラウザでPDFファイルをWebページからシームレスに表示するか、ダウンロードするかの設定」を用意しましたのでご参照ください。
Web表示用に最適化したPDFとは
PDFの表示が遅い、重いのはなぜ?
Webページで配布されているPDFをブラウザで開いてみるとき、PDFのページが表示されるまでに時間がかかる場合があります。いわゆる重いという現象ですが、PDFが重くなってしまう原因には様々なことがあり、従って、その対策も様々です。
WikipediaのPDFの項を見ていましたら、「PDFのドキュメントは、ドキュメントの一部分だけを参照したい場合でも、最初から最後まですべてのデータを閲覧端末に読み込む必要がある。」(2006年12月31日時点の文章)という説明がありました。
このように理解している方も多いと思います。また、無償あるいは廉価なPDF作成ソフトで作成したPDFをAdobeリーダなどで表示する際は、PDFファイルの最後まで読まないと表示開始できないことも多いようです。このような場合、ページ数が多くファイルの容量が大きいPDFをWeb経由で表示しようとすると、全部ダウンロードするまで、目の前の画面には、内容がまったく表示されないということになってしまいます。
これがPDFが重いという印象を持たれ敬遠される理由のひとつでしょう。
Web表示用に最適化という仕様
こうした現象を解消するための対策として、リニアライズドPDF (Linearized PDF)という仕様があります。なお、リニアライズドPDFという言葉は、PDF Referenceで使われている専門用語です。Adobe Reader英語版では、Fast Web Viewという言葉を使っていますし、日本語版では、Web表示用に最適化という言葉を使っています。実際のところ、Web表示用に最適化という表現は曖昧ですし、後で説明しますように携帯電話用のPDF Readerでも、リニアライズドPDFが重要な役割を果たすことになりますので、Web表示用に最適化という用語が適切とは思いません。しかし、ここでは、慣例に従って、リニアライズドPDFのことをWeb表示用に最適化と呼ぶことにします。
Web表示用に最適化したPDFの場合、PDF Readerは、PDFをすべて端末に読み込まなくても表示開始できますし、ドキュメントの特定ページを直接参照することもできます。
PDF Reference 1.7では、Web表示用に最適化について付録F(pp. 1021 - 1055)で35ページにわたって説明があります。
それによりますと、Web表示用に最適化は、PDF仕様1.2から追加された機能で、次のような目的をもつとされています。
- PDFを開くとき、最初のページを可能な限りすばやく開く。最初のページとしては、先頭ページでなくて任意のページを指定できる。
- ユーザが開いたページから別のページを要求したとき、可能な限りすばやくそのページを開く。
- 文書を遅い通信回線を使って配布するとき、ページを少しづつ順に表示できるようにする。
- リンクを辿るときに、全てのページを受信して表示しなくても良いようにする。
付録になっていることからも分かりますが、オプション仕様であり、必須ということではありません。このため、無償・廉価版PDF作成ソフトでは実装されていないことも多いのです。
Web表示用に最適化のタイミング
Antenna House PDF Driver (V3.1以降)や、AdobeのAcrobatのPDFドライバでは、PDFを作成の初期設定がWeb表示用に最適化するようになっています。そこで、意識しなくてもWeb表示用に最適化されたPDFが作成されます。しかし、Web表示用に最適化するかしないかは、指定もできます。
PDFをWeb表示用に最適化するプログラムがなにをするか、技術的な詳しいことは、PDF Referenceをお読みいただきたいと思います。簡単に言いますと、PDFファイルの内容(オブジェクト)を並び替えて、表示用に最適化する処理を行います。このためPDFの作成とWeb表示用に最適化は2ステップの処理になります。つまり、Web表示用に最適化するとその分追加の処理時間がかかるということです。
また、Web表示用に最適化処理済のPDFを暗号化したりしますと、Web表示用に最適化でなくなってしまいます。また、PDFは、一旦作成した後で、様々に情報を追加したり、更新できるようになっています。このようにPDFを少しでも変更したり、情報を追加すると、Web表示用に最適化ではなくなりますので、再度、Web表示用に最適化しなければなりません。
PDFがWeb表示用に最適化されているかどうか確認する方法
あるPDFがWeb表示用に最適化されているかどうかは、Adobe Readerであれば、文書のプロパティで確認できます。次の図をご参照ください。
Web表示用に最適化PDFの利用
WebブラウザでWeb表示用に最適化版PDFの100ページをいきなり表示したいならば、対象PDFのURLの後ろに次のようにページ番号を指定します。
....PDF#page=100
Web表示用に最適化していないPDFで、表示したいページ番号が指定されている場合は、ブラウザはPDFファイル全体をダウンロードしてからAdobeリーダが100ページ目にジャンプして表示します。
しかし、Web表示用に最適化したPDFでは、100ページ目を直接表示することができます。この場合、100ページ目を表示するまでの待ち時間が短縮できるわけです。
Web表示用に最適化したPDFの表示までの時間短縮効果が大きいのは、遅い通信速度経由でPDFをダウンロードして表示する場合などでしょう。
バイトサービング
このように、通信回線が遅く、また、端末のメモリ容量が小さいときなどは、このWeb表示用に最適化したPDFを、ページ単位で端末に送信するバイトサービングを使うことができます。バイトサービングについては、下記のページを参照してください。
バイトサービングを使うにはWebサーバ側でPDFを1ページずつ送り出してくれる機能が必要ですが、新しいWebサーバはPDFのバイトサービングには対応しているようです。
携帯電話でのPDF表示
携帯電話などでPDFを表示しようとすると、Web表示用に最適化した上で、バイトサービングを組み合わせてページ単位にダウンロードするようなことが必須になると思います。携帯電話でアプリケーションが使えるメモリ容量はPCと比べればまだまだ少ないですし、通信回線のデータ転送速度も遅いからです。
実際に、NTTドコモのFOMAには、PDF Reader (Acrobat LE)が搭載されているものがありますが、FOMAのPDF Readerは、Web表示用に最適化したPDFでないと表示できないようです。
Web表示用に最適化PDFの効果を体験
Web表示用に最適化したPDFでは、PDFを最後まで読まなくても表示することができます。これを実感するには、実際のPDFで体験してみるのが一番分かりやすいと思います。そこで、次に実証データを作成してみました。
実証データの作成方法
XSL Formatterでは作成するPDFをWeb最適化するかしないかを指定する機能があります。また、「XSL Formatter V4.1のマニュアル (PDF)」は、XSL-FOのデータをWebから配布していますので、XSL Formatterの評価版を使って、Web表示用に最適化したものとしていないものを用意しました。
PDFの総ページ数は232ページ、ファイルサイズは約3MBです。XSL-FOのファイルを組版してPDF出力するまでの時間は、次の図のようにWeb表示用に最適化しないと70秒、最適化すると75秒となり、7%ほど余計に処理時間がかかります。
CPU速度 1.6GHz、768MHz1GBのRAMを搭載したWindows XPで各3回実行した時の2回目と3回目の平均処理時間です。