Illustrator LinkUpdator
2023年6月4日 zxpパッケージを公開しました。
新しいIllustratorのExtensionをです。今回は配置画像の編集を自動で感知するExtensionになります。
基本Illustratorではビットマップ画像はPhotoshopで編集したものを配置して編集すると思いますがPhotoshopで編集した後に
Illustratorで配置画像の含まれるドキュメントを開いても配置画像が古い状態から新しい状態になっているにも関わらず何故か
保存が無効化されていることがあります。これは配置画像そのものが更新されてもIllustrator自体が編集されてないので保存有効かのフラグが立たないため起こる現象です。これに関しては細かい点まで吉田印刷所さんがブログでまとめてくれていますので参考になります。
Extensionの仕様
それで今回の本題はこの配置画像の変更後にIllustratorのドキュメントを保存できる状態にする事ですが
これをExtensionを使用して画像更新の感知、Illustratorドキュメントを保存可能な状態にします。
パネルが開かれている時にイベントが発火するようになっています。(閉じられたら発火しない)
アクティブなドキュメントの配置画像が更新された場合はそのままExtensionが感知してドキュメントを保存できるようにします。
ドキュメントですが最後に保存されてから全く編集されていなくてもプレビューとアウトラインの表示を切り替えると保存できるようになるみたいなので切り替えを二度行って保存できるようにしています。またドキュメントを開いたり別のドキュメントをアクティブにした時に配置画像とドキュメントの更新日時を調べて配置画像の方が更新日時が新しかったらその時も編集されていなくても保存できるようにしています。ちなみにドキュメンを保存時にリンクの外れた画像があるとそれも感知してアラートを表示します。
中身のコード
何度も触れていますがExtensionには独自のイベントがあってドキュメント保存後に発火するイベント、新しいドキュメントがアクティブになった後に発火するイベントです。詳しくは私の記事、CEPのイベントを参照してください。ただしCEPのイベントには配置画像を監視する機能はありません。なのでNode.jsで特定のファイルの監視ができますのでこれを使って配置画像の監視をします。なお監視システムにはchokidarを使用しています。ただ問題なのが配置画像を再リンクされた時に発火するイベントがないので配置画像が変えらた時に監視対象を変える事ができません。しかし配置画像を変えた後はIllustrator上では編集されたと認識されているので保存はできます。問題は保存できない状態で適切な画像の監視ができないことなのでドキュメントが保存された後に配置画像のリストを再度更新するようにしています。
懸念していること
内部的に少しイベントの数が多いので少し重くなったりしないか心配です。またchokidarの更新が古くなってきているのでそろそろ監視のシステムにはNode.jsの純正のwatchメソッドに切り替えた方が良いかもと考えています。また現状そこまでテストをしているわけではないので使用する場合は細心の注意の上お使いください。あくまでベータ版のような感じでご使用ください。
ソースコード
Git Hubよりご覧ください。
zxp パッケージ
こちらからダウンロードしてください。