DTPab

印刷やデザイン、アドビ製アプリやスクリプトなど、雑多な技術ブログ

【Illustrator】ドキュメント切り替えと同時にカラーパネルの表示を切り替えたい

はじめに

ドキュメントが印刷用のデータはCMYK、ウェブ(もしくはRGB入稿の高彩度印刷)用のデータはHSBにしたい、というカラーパネルの切り替えが本当に面倒で…。
自動で切り替わってくんないかなーとずーーーーーっと思っていました。

アクションとスクリプトで解決できた

昨日、hamkoさんがアクションが使える! というポストのあと、あぢさんがこうすればスクリプトにできる! とリプライされていました。

ただ、IllustratorはInDesignと違ってイベントリスナー*1がないので、どうしても手元で「スクリプトを実行」という行為を挟まなければなりません。
そこで、先日ブログで公開したドキュメントを切り替えるスクリプトに組み込んでみることを考えました。

uske-s.hatenablog.com

こうすれば、実質的に自動でカラーパネルが切り替わるのでは? というわけです。

そしてできあがったのがこれ。

スクリプト

以下のGistに、AI_changeDocuments.jsx と SwitchDocumentWithColorPanelMode.jsx という2つのスクリプトを公開しています。前者は、前回のただドキュメントを切り替えるだけのもの、後者が今回新たに用意したものです。

使い方

  1. あぢさんが作られたスクリプトと、SwitchDocumentWithColorPanelMode.jsx を同じフォルダに保管します*2
  2. SwitchDocumentWithColorPanelMode.jsx のオプションを書き換えます(後述)
  3. SPAiなどから SwitchDocumentWithColorPanelMode.jsx を実行します

SwitchDocumentWithColorPanelMode.jsx のオプションについて、下記2箇所を書き換えてください。

var options = {
  fileNameOfScript: "change-color-panel.jsx", // カラーパネル変更スクリプトのファイル名
  exceptCurrentDocument: false, // ドキュメント切り替えに現在のドキュメントを除外するかどうか
};

カラーパネルのモードを変更するスクリプトのファイル名を、fileNameOfScript: "xxxx.jsx"xxxx.jsxのところに入れてください。

もうひとつのオプションは、ドキュメント切り替えスクリプトの仕様をちょっと変更するものです。当初公開していたのは、ドキュメントを切り替えるなら現在のドキュメントは除いたほうが合理的、という観点から*3、現在開いているドキュメントは除いてドキュメントを切り替えるという仕様だったのですが、アオリ検版のように複数のドキュメントをパラパラめくりたいこともあるかも? と思ったので、このexceptCurrentDocument: false というオプションをfalseからtrueにすると、現在開いているドキュメントも切り替えリストの選択肢に入れた状態でドキュメントを切り替えることができます。お好きなほうで使ってください。

余談

あぢさんのスクリプトは、一時的にデスクトップにアクションファイルを生成→削除という振る舞いをしますが、これが気になる人は書き出し場所を変えるとよいです。筆者はtempフォルダで作業するように書き換えて使っています。
110行目、

tmp = File(Folder.desktop + "/ColorPanel.aia");

の部分を

tmp = File(Folder.temp + "/ColorPanel.aia");

とするだけです。
お好みでどうぞ。

*1:アプリケーションの動作に応じてスクリプトを自動実行させる機能。アドビがGitHubで公開しているプラグインを自分のマシンに入れれば使えないこともないみたいですが、なかなか人に使ってもらうのが難しいので情報のみ掲載に留めます。あぢさん、情報ty!→https://x.com/AJABON/status/1981196223756538084

*2:カラーパネルのモードを変更するスクリプトをドキュメントを切り替えるスクリプトから参照させるため、ファイル名はアルファベットのみで構成したほうが安心です。適宜リネームしてください

*3:筆者の勝手な予想です