ファイルサイズの大きなPDFを最適化する

Posted by nogajun - 2011/02/01

_

ここんとこ、ひょうごんテック関係のチラシやらポスターやらをInkscapeで作っ てるわけですが、作成したPDFを送ったところ「ファイルサイズが大きすぎるの でなんとかなりませんか」と連絡が。

送ったファイルを見てみるとPDFなのに6MB〜8MBの大きさ。InkscapeのPDF書き出しって、 こんなサイズが大きくなったっけ? 基本的に文字と写真の切り貼りなので、そんなにサイズは大きくならないはずなのにおかしい。 けど、そうは言ってられないのでLinux上でPDFを最適化する方法を探してみた。

ということでググってみたら、Ghostscriptを使うとPDFの最適化ができるそう。

ネタ元 Ubuntu Tip:Howto reduce PDF file size from command line | Ubuntu Geek : http://www.ubuntugeek.com/ubuntu-tiphowto-reduce-adobe-acrobat-file-size-from-command-line.html

ネタ元から引用すると、こんな感じ。

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -sOutputFile=(出力ファイル名).pdf (オリジナルファイル名).pdf

ちょっとこれは長ったらしいので、Inkscapeからはpsで書きだしてラッパーの ps2pdfを使うほうがお手軽かも。

ps2pdf14 -dPDFSETTINGS=/default -sPAPERSIZE=a4 (オリジナルファイル名).ps (出力ファイル名).pdf

-dPDFSETTINGS= で指定できるPDFの最適化レベルは、ps2pdfのドキュメント から引用するとこんな感じ。

ps2pdf: PostScript-to-PDF converter: http://pages.cs.wisc.edu/~ghost/doc/cvs/Ps2pdf.htm

  • /screen selects low-resolution output similar to the Acrobat Distiller "Screen Optimized" setting.
  • /ebook selects medium-resolution output similar to the Acrobat Distiller "eBook" setting.
  • /printer selects output similar to the Acrobat Distiller "Print Optimized" setting.
  • /prepress selects output similar to Acrobat Distiller "Prepress Optimized" setting.
  • /default selects output intended to be useful across a wide variety of uses, possibly at the expense of a larger output file.

用紙サイズの -sPAPERSIZE だけど、A4の場合は無しでもかまわないけど、それ以外の場合は指定しておいたほうが安全です。

それで最適化してみた結果。

$ ls -lah sahana*
-rw-r--r-- 1 jun jun 270K 2011-02-02 18:14 sahana-default.pdf
-rw-r--r-- 1 jun jun 478K 2011-02-02 18:14 sahana-prepress.pdf
-rw-r--r-- 1 jun jun 6.2M 2011-02-02 18:11 sahana.pdf

6.2Mあったファイルが印刷屋に出すprepressでも480Kってどういうこと!?

比べてみても変わったところは見当たらないし画像の劣化もないし、とりあえ ずはファイルサイズが減ったということでよしとするか。