Illustrator で作った .ai ファイルをファイルサイズを減らした .pdf に
もちろん 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 ̄
ベクターデータだけだと全く見た目には見分けつかない。
関連エントリー
- Mac でウェブカメラの定期撮影を Swift で書く macOS 用にウェブカメラからjpgを取得するコマンドラインツールにimagesnapというのがある。単発で使うには問題ないんだけど、イン...
- ESP-WROOM-02 OTA firmware update / platformio Over The Air で (すなわち Wifi 経由で)、ファームウェア書きかえをするやつ。 コード https://github.co...
- Ruby でスコープをはずれたときに自動で何かをする Guard オブジェクト Perl だと Guard オブジェクトとかいうハックがあって、スコープを出るタイミングで必ず呼ばれるファイナライ...
- NanoVNA の時間領域測定 (TDR/TDT) ローパスモードのDC外挿 DC外挿してないけどなんで? どのぐらい誤差がでる? DC外挿とは? VNA で負の周波数まで拡張して時間領域変換する場合、DC値も計算対象...
- STM32F072 で、ユーザーコードから DFU モードに入る。 STM32 には出荷時点でブートローダーが入っていて、様々な方法ですぐ書きこめるようになっている。ブートローダーは、書き換えできない「システ...