ちゃーっす。
adobe製品はillustrator, photoshop, premireしかしらない人間です。
今回はillustratorのファイルを開いた状態で、ファイルの保存形式を確認する方法を模索したという話です。
きっかけは、デザインチームの「入稿時に保存形式が指定されているがわからない」という話題から始まり。
ちょっと面白そうだったので、この連休三日間の暇つぶしで解決してみようかなと思いました。
(qiita記事にもなって一石二鳥)
導入:
ファイルの保存形式というのは、入稿時によくCSのみとか、CCとか指定が入ることが多いようです。
実際「別名保存」=>「illustratorオプション」のところで選択できます。
そしてこのファイルの保存形式について、illustrator上では確認しづらいようです。
確認方法:
.aiのファイルをテキストエディタなりで読み取ると確認できるみたい。
今回はvscordだとみやすいようです。
以下画像の中のCreatorという箇所の情報がファイル形式を特定する鍵になります。
「Adobe Illustrator(R)」以降の数字を以下の対応表に当てはめると保存している形式がみつかる。
表記名 | バージョン |
---|---|
11.0 | CS |
12.0 | CS2 |
13.0 | CS3 |
14.0 | CS4 |
15.0 | CS5 |
16.0 | CS6 |
17.0 | CC (レガシー) |
24.0 | CC 2020 |
なので、ファイルを解析するスクリプトを書くといいみたいだということがわかる。
adobeで使える言語
adobeで使える言語は調べてみると以下のようです。
- applescript(macのみ)
- vbscript(windowsのみ)
- javascript(mac,windows両環境つかえる)
今回は普段使っていて学習コストの少ないjavascriptを使っていきます。
ExtendScriptというらしい。
補足:ExtendScriptについて
ここが詳しく載っていている。
ES3相当しか使えないため、普段使っている手法(アロー関数とか)なしで開発しなれければいけないのと、若干javascriptと解釈が異なる部分があるので注意が必要。ネストする三項分岐とかは特に意識したほうがいいよですね。
以上のことからあまりadobeは、開発に積極的じゃない感がよく伺える。
(サブスク高いし、契約形態が融通性がないから、そこらへんもっと提供しろよという気持ちは置いておこう)
コード:
もっと改良点はありそうだが、あげておく。
(記事書いてる途中で、try-catchの意味がない気がしてきた。)
var version_map = {
"11.0":"CS",
"12.0":"CS2",
"13.0":"CS3",
"14.0":"CS4",
"15.0":"CS5",
"16.0":"CS6",
"17.0":"CC legacy",
"24.0":"CC 2020",
}
var re = /%Creator:\sAdobe\sIllustrator\(R\)\s(\d+\.\d+)/;
var f = File (app.documents[0].fullName);
if (f.open('r')){
while (!f.eof){
if(f.readln().match (re)) {
try {
alert ('形式バージョン: '+ version_map[RegExp.$1]);
}
catch(err){
alert ('形式バージョン: unknown');
}
break;
}
}
}
使い方:
このかたの記事がとてもわかりやすいのでご参考ください。
おわりに:
結構簡単にできた。(とかいいつつ1日ぐらい使ったけど)
javascriptでだいたいできる世の中は素敵だ。
こういう「ちょっとだけ痒いところに手が届くツール」を作るのは大好物なので苦にならないから楽しく作れる。
使ってくれるといいな・・・。
参考文献:
JavaScript Tools Guide CC
kawamoto_α氏 ExtendScriptについて知ってることをまとめた
hamko氏 Illustratorでスクリプトを使ってみよう[標準機能編]