<追記:2013.5.8 バージョンアップしました


ウェブとは関係ないエントリです。
巷によくあるレイヤーごとPDF書き出しのスクリプトって、その他のレイヤーを非表示にするだけでやってたりするので、書き出したPDFの容量が無駄に大きくなり、あまりよろしくありません。なので、いつも別ファイルに必要なものだけ持っていって書き出したりしていたのですが、やはりつらいのでJavascriptで書いてみました。最上位階層のレイヤーを走査して、その他のレイヤーを毎回消しながら順番にPDF保存していきます。個人的に、ヘッダーなどの共通部分も一つのレイヤーにまとめるやり方をよくするので、それも考慮してみました。
今回、ExtendscriptToolkitを使ってみたのですが、便利ですね。変数値の監視や$クラスを使ったブレークポイント挿入やwrite関数、さらにIllustratorを再起動しなくても実行できるのが素晴らしい。

せっかくなので、作ったスクリプトを公開します。ぜひ使ってみてください。
ソースの上部に主要なPDFの書き出しオプションまとめてるので、必要なら書き換えてください。そのうち、ダイアログで設定可能なようにしたいですな。勉強してみます。


SaveAsPDFByLayers.zip

<追記:2012.2.17>
※ 中身は一緒ですが課金版も用意してみました。100円です。Gumroadなのでその場で簡単にクレジット決済できます。気に入ったら、購入お願いしますっ。売れたら、アップデートする気が起こるかも?

Get this for 100 yen


<使い方>
・解凍したファイルを「Adobe Illustrator CS3/プリセット/スクリプト/...」に保存
・「ファイル→スクリプト→SaveAsPDFByLayers」を実行
・実行後にダイアログが表示されますので、保存先を指定してください
・保存されるPDFは「[3桁連番]_[レイヤー名].pdf」となります

<機能・解説>
・最上位階層のレイヤーを上から順にPDFで保存します
・下位階層のレイヤーは操作の対象になりません
・ロックされているレイヤーは操作の対象になりません
・ヘッダーなどの共通部分を含むレイヤーは「表示・ロック」しておくと便利です
・「非表示・ロック」になっているレイヤーも非表示のまま書き出し対象になりますので、不必要なレイヤーはあらかじめ破棄しておくことをお勧めします(追記:こちらを活用してください)
・書き出されたPDFのファイル名の接頭数字は3桁でつくので、Acrobatで一気に読みこんだ時に順番の入替作業が不要で便利です