もちろん Illustrator を起動してエクスポートなり別名で保存なりすればいいのだけれど、複数ファイルを頻繁にコンバートしたいときやはり面倒なのでコマンドラインで自動化したい。
今まで .ai ファイルが .pdf 互換ということで、.ai の拡張子だけを変更してコピーするみたいなことをしていたけど、ファイルサイズがかなり大きくなってしまう。PDF として見るだけなら必要ないデータもあるはずなのでお手軽に削減したい。
ghostscript を使う
http://askubuntu.com/questions/113544/how-to-reduce-pdf-filesize に書いてある通りだけどコピペしておく
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input1.ai input2.ai
こうするとスクリーンをターゲットに最適化される。ベクターデータとかは特にクオリティーは落ちず、余計なデータが省かれるだけになる。入力には .ai ファイルも指定できる。
ビットマップデータはかなり高圧縮になってしまってクオリティがかなり落ちたりするので、そういう場合は -dPDFSETTINGS=/ebook を指定するとサイズが多少増えつつもマシになる。
これ、入力ファイルを複数指定すると結合した1つのファイルができて便利。
こんな感じ
-rw-r--r--@ 1 cho45 staff 1.5M 9 1 20:07 2-block.ai
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=2-block.pdf 2-block.ai
-rw-r--r--@ 1 cho45 staff 51K 9 2 22:19 2-block.pdf _人人人人人_ > 30分の1 <  ̄Y^Y^Y^Y ̄
ベクターデータだけだと全く見た目には見分けつかない。