PDFのフォント環境
フォント埋め込みの重要性
DTPでPDFを使うメリットとして、アプリケーションのデータよりも安全な出力が保証されるということがよく挙げられます。実際には、PDFにも色々なデータがあり、必ずしも安全に出力できるとは限りませんが、一般的なDTPデータよりも安全であると言われる根拠の一つとされているのがPDFにフォントを埋め込めるという点です。
DTPが始まった当初からこれまで、出力トラブルの多くを占めてきたのがフォントがらみの問題です。DTPの場合、データを制作する環境と出力する環境の双方に同じPostScriptフォントがなければならないということが、トラブルを生む最大の要因でした。
データを作るマシンのフォント環境、出力するマシンのフォント環境、そしてプリンタに搭載されているフォント環境が同じでなければ文字化けなどを招いてしまうというのは、考えてみればかなり不自由な仕組みです。
パソコン上のフォントデータをプリンタに送って出力できるOpenTypeフォントを使えば、プリンタ搭載のフォント環境の問題はなくなりますが、それでもデータ制作マシンと出力するマシンのフォント環境が合っていなければならないという点は変わりません。データを作る側と出力する側が異なる場所、環境であるケースが多いDTPでは、フォントに関連する出力トラブルは依然として大きな割合を占めているのが現状なのです。
PDFは文字データをデータに埋め込むことが出来るという点が大きな特徴です。文字そのものをデータに埋め込むことができれば、出力するマシンにそのフォントがなくても文字化けを気にすることなく出力することが可能です。つまり、PDFを作成する環境できちんと文字を埋め込むことさえできれば、環境にかかわらずどんな出力現場でもトラブルなしに出力できるというわけです。
文字化けや文字抜けは、一歩間違えると重大な印刷事故につながりかねません。そういう事故を防ぐという点で、PDFには大きなメリットがあるのです。
ただし、文字関連のトラブルを防ぐためには、PDFに文字がきちんと埋め込まれていなければなりません。言い換えると、PDFがDTPにおけるメリットを発揮するためには、文字が埋め込まれているかどうかが決定的に重要だということになります。
PDFに埋め込めるフォントの種類(フォーマット)は、OpenType、TrueType、CID(sfnt-CID)、欧文Type1フォントです。OCFフォントおよびCID(Naked-CID)フォントは埋め込むことができませんし、埋め込める種類であってもフォントメーカーが埋め込みを許可していないフォントは埋め込むことができません。
PDFのデータ内で使われているフォントが埋め込まれているかどうかを確かめるには、AcrobatでPDFを開き、「プロパティ」の「フォント」タブをチェックします。そこに現れるフォント一覧で、フォント名の横に「埋め込み」または「埋め込みサブセット」となっていればそのフォントが埋め込まれていることを意味します。
逆に「埋め込み」という表記がなく、「実際のフォントの種類」などという記述があればそのフォントは埋め込まれておらず、環境によって異なるフォントが使われてしまうということになります。その場合は、フォントを埋め込める環境でデータを作るか、Acrobat上で文字を埋め込むといった処理が必要です(その他、プリフライト機能でもチェックできる)。
フォントのエンコーディング
フォントが埋め込まれていれば、PDFの出力時にはその埋め込まれているフォントデータが使われるため文字化けは起きないはずです。ところが、フォントが埋め込まれていても文字化けなどが起きることもあります。
PDFをInDesignなどに貼り込んで、それをさらにPDFに書き出したりするような場合、PDFに含まれるフォントのエンコーディングによってはきちんと文字が出力できないことがあります。エンコーディングとは文字を定義する方式のことであり、Acrobatのフォント一覧に表示されています。
たとえば、「90ms-RKSJ-H」とあれば、Windowsの文字セット(90ms)を使い、シフトJISでエンコーディング(RKSJ)された横組み(H)という意味になります。Acrobatは、主なエンコーディング(文字セット)とフォント固有の文字番号(GIDまたはCID番号)の対照テーブル(CMap)を用意しています。これによって、あるエンコーディングでその文字が何と表記しているかさえ分かれば、Acrobatでも確実にその文字にアクセスすることができるわけです。
ちなみに、Acrobatの言語バージョンによって用意されているCMapの数や種類は異なります。たとえば英語版だと、日本語や中国語のCMapがなくて表示できないことがあります。どのバージョンでも使えるエンコーディングとしては「Identify-H」および「Identify-V」があります。この2つのエンコーディングはCID番号と基本的に同じであり、フォントが埋め込んであればどのAcrobatでもCMapなしに表示が可能です。
また、場合によってはエンコーディング方式が表示されないことがあります。Acrobatのフォント一覧に「カスタム」とか「ビルトイン」と表示される場合です。
「カスタム」では、フォントの文字が文字形状データごとPDFに埋め込まれています。この場合、フォントの文字を定義しているのは一般的に使われているエンコーディングではないため、カスタムの文字列をPDF上でコピーしてエディタなどに正しくペーストできないことがあります。ただし、文字の形状データはあるのでPDFを出力して文字化けするわけではありません。
「ビルトイン」は、フォントの文字データやエンコーディング情報が埋め込まれるというものです。エンコーディング情報がPDFに含まれているためコピーなども可能ですが、場合によっては文字化けが起きることがあります。
カスタムやビルトインの場合、そのままAcrobatから出力すると問題ないのに、InDesignに貼り込んでPDF書き出ししようとするとうまくいかない場合があるようです。また、PitStopでアウトライン化しようとしても、文字が化けることもあります。これはイレギュラーなエンコーディングの場合、アプリケーションによっては対応できないことがあることを意味していると思われます。
環境に依存しない文字環境を提供するという点でメリットが大きいPDFですが、その限界もあるということは覚えておくほうがいいかもしれません。
(田村 2007.9.3初出)
(田村 2016.11.4更新)