PDF生成ソフトと安全性
PDFの作り方の問題
今やDTPでもなくてはならないものになってきたPDF。校正ゲラの代わりにお客さんにPDFを送ったり、出力でPostScriptの代わりにPDFを使う、あるいは印刷物と同じものをWebで配信するためにPDFにする、といった一般的な使い方だけでなく、EPS画像の代わりにPDFを貼り込んだり、PDFでプリフライトチェックをするなど、さまざまな使い道が考えられるのもPDFのメリットです。
PDFの特徴の一つとして、使用目的に合わせて性質の異なるPDFを作ることができるという点があります。たとえばPostScriptフォーマットだと、調整するのは用紙サイズやトンボ程度ですが、PDFの場合はフォントの埋め込みや画像の解像度、圧縮率、ICCプロファイルのタグ付け、PDFのバージョンなど、色々な要素をコントールすることでまったく違う性質のPDFが作れます。
このように、PDFはきわめて柔軟性に富んだフォーマットであり、だからこそ多様な目的に使えるわけですが、設定や指定さえきちんとして作れば問題ないPDFになるかというとそうとは言い切れません。目的にあった正しい設定でPDFを作ったのに出力でトラブルが起きたということもないことではないのです。
PDFを作る場合、注意しなければならないのは、どのようにPDFにするか、具体的にはどんなソフトを使ってPDFを作るかということです。PDFはアドビ社が開発したフォーマットですが、PostScriptと同様に、仕様は公開されており、誰がどんなソフトを使って作ってもかまわないことになっています。
実際、アドビ社からライセンス供与などを受けずに独自にPDF生成ソフトを作り、それを安価に販売したり製品にバンドルしているメーカーもあります。PDFを作るためだけのソフトとして考えるとアドビのAcrobatは高額ですから、安価にPDFを作れるソフトの存在はユーザーからすればありがたいのも事実です。
ところが、公開された仕様に則っているにも関わらず、異なるソフトを使った場合は同じような設定で作っても同じPDFになるとは限りません。むしろ、違うのが当たり前と考えるべきなのです。
これは、ソフトの出来に問題があってきちんと想定した通りのデータにならない(アドビ製品ですらバグや不具合がいつまでもなくならないのはご存知の通り)というのも一つの要因ですが、どのようなデータを使ってPDFを作るかが出来上がり自体をも左右するということも大きな理由です。
PDF生成ソフトは、どんなソフトのデータもPDFに変換できなければなりません。ところが、アプリケーションのデータは一様ではないため、そのすべてに個別対応することは不可能です。
そこで、WordやExcelといったメジャーなソフトのデータは直接サポートするとしても、それ以外のソフトについてはプリント機能を利用するという方法が一般に行われています。
ほとんどのソフトには印刷機能が備わっています。そこで、ソフトからプリンタドライバに渡されるデータを使ってソフトがPDFに変換するわけです。プリンタドライバに渡されるデータはソフトに依存しないデータであるため、この方法であれば理論的にあらゆるソフトのデータをサポートすることができます。
ただし、この場合も問題はあります。Windowsの場合、ソフトのデータはOSのGDI(Graphic Device Interface)経由でプリンタドライバに渡されます。GDIはモニタやプリンタなどさまざまな出力機にデータを出力するためのインターフェイスです。一方、PostScript出力の場合はGDIを経由せず、PostScriptプリンタドライバによってPostScriptデータを生成します。
GDIとPostScriptドライバはデータの処理そのものが大きく異なり、結果も同じになるとは限りません。つまり、プリント機能を使ってPDFを作ったとしても、GDIドライバを使うのかPostScriptドライバを使うのかで出来上がるPDFも違ってくるのです。
DTPデータは最終的にPostScript対応のRIPで処理するということを考えると、GDIドライバを使ってPDFを作るのはトラブルが起きる危険性が高いと言わざるを得ません。PDFは安全なデータというのが一般的な認識ですが、GDIプリンタを使って作られたPDFは安全性という点ではかなり疑問が残るデータであり、使うべきではありません。
DistillerとPDF Library
アドビ製品を使う場合、PDFの作り方には二通りあります。一つはAcrobatパッケージに含まれるAdobe Distillerを使うというもの。DistillerはRIPのコアプログラムと同じ仕組みを使っており、PostScriptデータを解析(インタープリット)し、PDFに変換します。RIPでの第一段階の処理を行ってからPDFを作るため、信頼性が高く、アプリケーションに依存しないPDFが作られます。
Distillerを使うにはいったんPostScriptファイルを書き出さなければならないと思っている人もいるかもしれませんが、そうではありません。アプリケーションの印刷機能でプリンタに「Adobe PDF」を選んで印刷を実行した場合も、いったんPostScriptドライバでPostScriptデータが生成され、それをDistillerがPDFに変換するという処理が自動的に(ユーザーの見えないところで)行われるのです。
もう一つの方法はアプリケーションに付属するPDF生成プログラムを使うやり方です。InDesignには「書き出し」という機能があり、ここで直接PDFを書き出すことができます。また、Illustratorではネイティブ形式(AI)やEPS形式と同じようにPDF形式で保存することができるようになっています。
InDesignやIllustratorには「PDF Library」というPDF生成プログラムが用意されており、直接PDFに書き出す際にはこのプログラムがPDFを作ります。このプログラムは、DistillerのPDF設定とほぼ同じ設定が可能であり、信頼性もかなり高いものですが、それでもDistillerと同じPDFが作られるという保証はありません。
PDF LibraryはInDesignやIllustratorのドキュメントデータを直接PDFに変換するものであり、Distillerと違い、PostScriptを作る工程はないので、生成にかかる時間が早くてすむという利点があります。ただし、PostScriptを書かないためにプリンタ出力やDistiller経由のPDFと違ってくる可能性も高くなってしまうのです。
DistillerでPDFを作った場合、基本的にPostScript出力と同じ結果が得られるはずです。PostScript自体は同じものですし、DistillerはRIPの初期工程と同じ処理を行うソフトなのですから当然でしょう。アプリケーションのデータにはPostScriptで処理できないデータ(たとえば透明効果など)が含まれていることがありますが、PostScriptになった時点でこれらは原則としてなくなるため、PDFに反映されることもありません。
ところが、PDF Libraryを使った場合は、直接PDFにするため、こういった機能がそのままPDFにも残る場合があります。この場合、このPDFをそのままRIPに送って出力すると、古いRIPなどではトラブルが生じる可能性があります。
透明効果はアプリケーションからPDF 1.3に保存することで古いRIPでも出力できるように処理できます(PDF 1.3が透明効果をサポートしていないのでInDesignやIllustratorは透明効果を分割統合処理する)が、うまく処理できるデータばかりではありません。場合によっては文字が抜けたりすることもないわけではないのです。
しかも、通常のPostScript経由のプリンタ出力でちゃんと出ていたとしてもPDFの出力の保証にはならないので余計に厄介です。
最終的な出力はDTPデータからPostScriptに書き出してRIPで出力するという仕事であれば、校正用のPDFも、PDF Libraryではなく、Distillerを使って作るというのが安全で確実な方法です。
(田村 2007.8.6初出)
(田村 2016.11.4更新)