Acrobat DC 「なんとなく」でやっていたPDF圧縮をきちんと理解

10年以上、適当にやっていました。PDFのサイズを小さくする際、設定画面に並んだ言葉の意味も対して理解せぬまま、なんとなくサイズを小さくしていました。以下の文章は、きちんと理解しなおし、部下に「さも、できる人」のようにしゃべる時のメモです。

はじめに

印刷用のPDFはファイルサイズが大きい
ポスターやカタログを制作する会社では入稿用にPDFを使います。入稿用PDFは、書き出し規格をPDF/X1aやPDF/X1aに設定してから、裁ち落としやカラープロファイルなどを手動で変更しPDFを作ります。PDF/X1aは画質が劣化しないように設定された規格のため、ファイルサイズが大きくなり、メールやWebサイト掲載用のPDFには適していません。そのため、印刷用に作ったPDFをAcrobat DCで適切に縮小して別のPDFを準備するのが一般的です。

メールに添付したいので3MBまでに落としたい
メールに添付する場合、Webサイトにアップロードする場合は、1ファイル3~5MB程度までに抑えることが理想です。

「魔法はない」
理想はありますが、PDF軽量化に限界はあります。特に、画像・図を多用すると極端にサイズが大きくなります。設定を適切にしたとしても、画像を多用した100ページ超のPDFを3MBにする・・・といったことはできません。
「ユーザーの予想どおり」でがっかりするかもしれませんが、サイズ増減の大半は埋め込み画像の圧縮率調整埋め込みフォントの削除のいずれかが影響しており、大量の画像×大量ページ数でわずか数KBになるといったことはありません。

そもそもPDFってなに?
PDFはワードやパワーポイントのように文字を打ち込んで、画像を貼り付ける書類とは構造が違います。書類というよりは、たくさんの小さいデータが収納された箱のようなデータです。

ーテキストや図(線や面)・画像(写真)がコードになって格納されている「箱」

箱の中に入っているコードを瞬時にレンダリングし、ビジュアルとして表示する、そういうデータです。元のコードには、変更履歴、トリミングされる前の元データ、高解像度のデータ・・・などがたくさんつまっているので、それを「表示」させるために必要な最低限のデータに減らすことが「圧縮」と呼ばれる作業なります。

よく、Webサイトにアップロードするだけで、PDFを圧縮してくれる無料のサービスがありますが、それはこの元のコードの不要な部分を削除して書き換えるJavaScriptなどのプログラムを埋め込んだサービスというわけです。

PDFの容量確認
PDF内の容量構成がどうなっているかをAcrobat DCで確認します。
PDF ファイルを Acrobat DC で開き、「メニューバーの表示/表示切り替え  > ナビゲーションパネル >コンテンツ 」を選択してコンテンツパネルを表示します。
ファイルアイコンを右クリックし「容量の調査」を選択します。
(あるいは、ファイル>その他形式で保存>PDFを最適化 >画面右上の容量を確認でも同じ画面が開きます。)

名称未設定 1

コンテンツストリームって?
容量確認画面で項目としてでてくる「コンテンツストリーム」は、ページのコンテンツつまりテキストと線画(テキスト、画像、フォームフィールド、コメント)です。
残念ながら「コンテンツストリームの圧縮率を調整する」という項目はありません。様々な項目を設定していく結果としてコンテンツストリームカテゴリに該当するのデータ量が可変しているようです。
画像の解像度のように、この要素を単体で特定してデータを圧縮できたらよいのですが、、、いまのAcrobat DCにはありません。


ファイル軽量化のやり方は3つあります


1. 「プリント > Acrobat PDF」

1つ目は、PDFでプリントすること。「ファイル>印刷>プリンタでAcrobat PDF」を選択> 設定ボタン>PDFの書き出し設定」を選択するとPDFが書き出されます。

2.「Distillerを使う」

2つ目は、PDFからPostscriptデータをつくり、PostscriptデータをAdobe DistillerでPDFに変換する方法です。

実は、1つ目の「印刷 > Acrobat PDF」を選択する方法は、内部でDistillerを使用してPDFを作っているので1つ目と2つ目は同じ手順をやっているだけともいえます。

この2つの方法のメリットは、次の「PDFの最適化」よりも画像が圧縮できること。
デメリットは、ブックマーク、リンク、注釈などのインタラクティブな要素や、ファイルの開き方などは維持できない点です。
画像を多用しているPDFなどは、この方法のほうがデータ容量を小さくできるかもしれません。

3. 「その他形式で保存>PDFの最適化」

3つ目は、別名保存 >PDFの最適化 から新しいPDFを作る方法で、これが最もベターなやり方です。

上記1と2は、「古いやり方」「昔ながらのやり方」という位置づけです。Acrobatの「PDFの最適化」機能が充実する以前にあったPDF化の機能で、「PDFの最適化」がますます高機能で賢くなっていくにつれて、いずれは消えていく機能だと思います。


「プリント > Acrobat PDF」と「Distillerを使う」について

**プリント>「Acrobat PDF」**とは
Acrobat DCをインストールすると自動的にプリンタの選択項目一つとして追加されます。Acrobat Reader などPDF読み取り専用のソフトのインストールでは追加されません。

ちなみにWindows10から標準搭載されている「Microsoft Print to PDF」 はPDFの作成できるものの、PDFの画質や解像度を低くする、フォントの埋め込みを変えるといった詳細設定ができないためファイルサイズの調整を行なうことはできません。

**Adobe Acrobat Distiller**とは
PostScriptファイルをPDFに変換するPDF作成アプリケーション。
Acrobat パッケージの一部として提供されるプログラム内のひとつです。

**Acrobat Distiller****Acrobat DC**の違いは何?
Acrobat DistillerはAcrobat DCの一部です。
Distillerは、PostScript ファイルからPDFファイルを作成できます。
Acrobat は、任意のファイル形式からPDFファイルを作成および編集できます。

**Adobe Acrobat Distiller****Acrobat DC**の「プリント>Adobe PDF」からPDFを作ったら、結果はほぼ同じだが・・・
印刷「Adobe PDF」 (Mac 印刷ダイアログ「Adobe PDFの作成」)からPDFを作ってできるのですが、この工程はDistillerで行われています(Distillerはたち上がりませんが、内部的に動いているようです)。
なので「印刷」も「PostScript データをDistillerでPDF化」も同様の結果になる(はず)ですが、、、微妙に結果がことなります
一旦、PostScriptファイルを作成し、Distillerにかけた場合と微妙に結果がことなるため、内部処理で異なる部分があるのだと想定されますが、詳しいことは開示されていないのでわかりません。

「PDFの最適化」と「プリント>Adobe PDFor Distiller」は全く別のエンジン
PDFの最適化とプリント(or Distiller)では、PostScript で記述されてる部分(ベクトルデータ)の圧縮方法に違いがあり、たとえば画像の圧縮設定を両方とも150ppiに設定したとしても、出力結果がことなります。
また、PDFの最適化をしてから、プリントを実施すると、最適化では実現できないレベルで画像が圧縮でき、ファイルサイズが小さくなる場合もありますが、多くの場合画像がかなり荒れるので、基本的にはおすすめできません。
また、プリントの設定次第では、元のファイルサイズよりも大きくなる場合もあります。

「PDFの最適化」について

3つのPDF軽量化手法のうち、最もスタンダードなのがこの「PDFの最適化」です。
この機能は、Acrobat DCに標準で搭載されており、PDFのソースデータを編集するといったより専門的な手法をのぞけば、最も細かくPDFの圧縮設定ができる機能といえます。

PDFの最適化を使ってみる

まず 「ファイル>その他の形式で保存>最適化されたPDF」を選択してください。設定画面が開きます。
この最適化オプションの設定画面で以下カスタマイズすることで、ファイルサイズを小さくすることができます。

・画像
・フォント
・透明
・オブジェクトを破棄
・ユーザーデータを破棄
・最適化

無題

「透明」「オブジェクトを破棄」「ユーザーデータを破棄」については文字通りのため説明を割愛します。3つともデータの軽量化にほとんど影響しません。


「画像」の設定

触ったことがある方はご存知かと思いますし、ユーザーの予想通り、最適化項目中でファイル軽量化に最も効果があるのはここです。
PDF内に格納されている画像データの圧縮方法をカラー、グレースケール、モノクロにわけて設定します。
この3つの切り分けはAcrobat DC側がファイルから自動で読み取って判断するためこちらで「どの画像がカラーで・・」といった設定はできません。


「ダウンサンプル」
ここで圧縮方法を設定します。ダウンサンプルとは画像内のピクセル数を減らすことです。

ppi(ピクセルパーインチ)は 1インチ(25.4mm)の中にピクセルが何個入っているかという数値です。横に次の解像度を超える場合とありますので、たとえば、ここに150 ,横に350と入力すると元々の画像が例えば350ppi程度であれば、それを150ppiまで落とすという設定になります。
従来は75ppiでOKでしたが、近年ではRetinaディスプレイなど高い解像度のディスプレイも普及しているため、理想は150ppi,200ppi程度まで維持しておきたいところです。ただ、現実的に150ppiにするとファイルサイズが大きくなってしまうので、とりあえず最小サイズを狙う75ppiに設定します。

なお、オフセット印刷なら 420ppi 写真集などの高精細なら400ppi以上といわれていますが、今回は、データをできるだけ軽く、画面上で閲覧するPDFを作成するのが目的ですのでここまでの解像度はいりません。

削減方法にいくつかの種類があります。Adobe DCの設定にないものも、いちよう紹介します。

ニアレストネイバー法…
低品質。精度の低い方法。おすすめしない。(Adobe DCにはない)

バイリニア法…
標準。変換前のピクセルが、変換前のどの領域に相当するかを選定し、変更後のピクセルの色とする方法。

バイキュービック法…
高品質。上記に加えて、周辺色も取り入れて補完する。バイリニア法よりわずかにファイルサイズが大きくなる。
Photoshopなどではさらに、「滑らか」「シャープ」「滑らなグラデーション」と画像の内容に合わせて書き出し設定が選べる。

「フォント>すべての埋め込みフォントをサブセット化する」 とは
「サブセット化」とは、制作した書類上に掲載した文字(字形)だけを抜き出したフォントをPDFに表示させる技術です。つまり、使用されていない文字のフォントデータは削除されるわけです。そのため、すべてのフォントデータよりもファイルのサイズを小さくすることができます。なのでここも、チェックしておきましょう。

「最適化
最適化パネルでは、不要な項目を文書から削除できます。例えば、古くなった要素や、文書の使用目的に合わない項目を削除できます。特定の要素を削除すると、PDF の機能に重大な影響を与えることがあるので、基本的にはデフォルトの設定を使用してください。データ軽量化にほとんど影響しません。

「LZWエンコーディングを使用するストリームにFlate圧縮を使用」
「エンコードされていないストリームにFlate圧縮を使用」って?

「ストリーム」とはPDFという箱に入っているデータそのもの及びデータの型・仕組みのこと。また、「Flate圧縮」はFlate方式による画像圧縮のこと。可逆性のある圧縮法で画像は劣化しないがファイルの軽量化には貢献しない。「LZW」は、画像の劣化なく保存でき且つかなりデータの容量が小さくなるエンコーディング方法(ファイル圧縮方法)です。
「LZWエンコーディングを使用するストリームにFlate圧縮を使用」「エンコードされていないストリームにFlate圧縮を使用」の項目は通常はONにしておくことをおすすめします。(それ以上の設定ができないため)。データ軽量化にほとんど影響しません。

PDF を Web 表示用に最適化
PDF を再構成し、Web サイトから 1 ページ単位でダウンロードできるようにします。

PDFのトリミング機能を使ってサイズを変更した場合、非表示情報を検索して削除で小さくなる
PDFをトリミングする場合の注意です。トリミング機能を使ってPDFの一部を切り抜いたとしても、ファイルの容量は変化しません。理由は、トリミングによって削除されたように見える範囲は、実は画面上で非表示になっているだけでデータとしては残っているからです。
 もしトリミングで非表示になっている範囲を削除したければ、「ツール>保護>非表示情報を検索して削除」機能を利用してください。相手に見せたくない部分を完全に削除することで、ファイルサイズを小さくできます。

別名保存は必須 「Acrobat はファイルに変更を追加するだけで、ファイルサイズはどんどん大きくなっていく」
PDFは基本別名保存。「ファイル> 名前を付けて保存>メニュー」から、別のファイル名でファイルを保存してください。FDFは保存するたびにファイルの変更履歴を蓄積する仕様になっているため、上書き保存するたびにデータが大きくなっていきます。別名保存によって、ファイル構造を完全にイチから再構築して、蓄積されたすべての変更情報をはきだしてください。

直接編集厳禁 「PDF文書内のテキストを直接編集するとファイルサイズが大きくなってしまう」
Adobe Acrobat を使用してPDF文書内のテキストを直接編集しないことをおすすめします。直接編集すると、サブセット化されたフォント以外に、新しい単一のフォントが追加されてしまいます。PDFドキュメントに単一のフォントを追加すると、1フォントでファイルサイズが600KB前後する可能性があり、ファイルサイズの増加につながります。

既存PDFのファイルサイズを小さくする(さっくとやるとき/基本使わない)
Acrobat でファイルサイズを小さくするPDFを開き、「ファイル>メニュー>その他の形式で保存>サイズが縮小されたPDF」を選択します。「ファイルサイズを縮小」ダイアログボックスが表示されるので、「互換性を確保」で作成するPDFのAcrobat 互換バージョンを選択します。あとは、ファイル名を付けて保存すれば、ファイルサイズが縮小されたPDFができあがります。なお、すでに縮小化したPDFに実行しても、大きなファイル軽量化はできません。
「ファイルサイズを縮小「ダイアログボックスで選択するAcrobat の互換性は、作成するPDFを問題なく開けるバージョンの指定です。PDFは実は内部的にはさまざまな改良が加えられており進化しています。そのため、古いAdobe Readerでは、新しいバージョンのPDFが開けないことや、新しい機能が無視されることがあります。

どうしてもファイルサイズを小さくしたい
手間はかかりますが、作成元のデータから修正する方法もあります。
先程説明したとおり、PDFは小さいデータが集まった箱です。イラストレータやインデザインのデータからPDF化される過程で引き渡される元データ自体を軽くしてやれば、必然的にPDFも軽量化します。

例:
psd,jpeg等のリンクデータの容量を小さくする
画像を貼り付けたイラストレータをPDF化させてインデザインにリンクさせるのではなく、インデザインに直接、画像のリンクを貼る。
使用フォント数を減らす
ブラシ等の重いデータを画像化など代替表現に変更する

結論・・・「魔法はない」PDFの軽量化に限界はある

以上です。


いいなと思ったら応援しよう!