InDesignイベントリスナースクリプトアイコン

インデザインバージョンチェッカー「IDverChecker.jsx」をCC 2019に対応。なんか知らんけど、仕様変更されてて苦戦した。

2016年09月06日に再upしたIndesign用バージョンチェックのイベントリスナースクリプト「IDverCheckerPlus.jsx」ですが、最新CC2019(※2019/4/22時点)でバージョンチェックが上手くいかず、CS6のドキュメントを開いてみても素通りされていました(正常なら下記のようなアラートが出現)。

CC2019にしてから何だかオカシイぞ!

やっとことことこ、自身のマシンにもIndesignをCC2019にバージョンアップしました。しかしながら明らかに古いCS6のドキュメントを開いてみても【素通り】?こいつぁ、上手く動いて無くない?ということでコード修正に踏み切りました。

バージョン追加しなきゃ

んで、ファイルを開いてみるとビックリ!CC2015で止まっとるやないか!

var AppVer=app.version//アプリのバージョン
var myCreator=app.activeDocument.metadataPreferences.creator;//ドキュメントのバージョン
...
case"8":AppVer="CS6";break;
case"9":AppVer="CC";break;
case"10":AppVer="CC 2014";break;
case"11":AppVer="CC 2015";break;
//ここから今回追加
case"12":AppVer="CC 2017";break;
case"13":AppVer="CC 2018";break;
case"14":AppVer="CC 2019";break;

っていうか、毎年バージョンアップしてるわけでもなく、11→12がCC2015→CC2017とかあるんで、ハッキリ言って【元号】よりたちが悪いシロモノになっております。サイアク!西暦と元号は仲良く年を重ねるから一度設定すれば完璧!なんですが、CC 20xxとメジャーバージョンの数が合わないんでバージョンアップごとの改変が必須!恐ろしや。っていうか、アプリのバージョン取得とドキュメントのバージョンの数字ア・ワ・セ・ロ・ヨ!

スポンサーリンク

ん?バージョンの返り値、仕様変更?

完璧!と思いながらテスト確認!しかし、またもやバージョン違いのメッセージ!何故だ何故なのだ!?デバッグしてみると、いつの間にかドキュメント作成バージョンの返り値、メジャーバージョンに合わせとるやないか!?

実行バージョン アプリバージョン取得 ドキュメントバージョン取得
CS6 8.1.0.420 Adobe InDesign CS6 (Windows)
CC メンドクサイので未調査
CC2014 メンドクサイので未調査
CC2015 メンドクサイので未調査
CC2017 12.1.0.56 Adobe InDesign CC 2017 (Windows)
CC2018 13.1.076 Adobe InDesign CC 13.1 (Windows)
CC2019 14.0.0.130 Adobe InDesign CC 14.0 (Windows)

このままの仕様なら、CC2019以降改変しなくてもイイカモ!しかしながら、【CC 14】て何よ?しかも結局旧バージョンはCC20xxで返すので混在しています。それにメジャーバージョン表記なので分かりにくい…。

思い切ってバージョン情報をXML化!ソケット通信?

思い切ってバージョン情報をXML化してそこから引き出すことにしました。

<version CCCS="CS4" major="6">CS4</version>
<version CCCS="CS5" major="7">CS5</version>
<version CCCS="CS5.5" major="7.5">CS5.5</version>
<version CCCS="CS6" major="8">CS6</version>
<version CCCS="CC" major="9">CC</version>
<version CCCS="CC2014" major="10">CC2014</version>
<version CCCS="CC2015" major="11">CC2015</version>
<version CCCS="CC2016" major="12">CC2017</version>
<version CCCS="CC2018" major="13">CC2018</version>
<version CCCS="CC2019" major="14">CC2019</version>

そしてサイトにxmlをアップしてjsxのソケット通信で読み込むという夢のようなシステム構築!

結局XMLもjsxに埋め込み…

//ソケット通信のサンプルコード
socGet()
function socGet(){
var reply = "";
var conn = new Socket;
if (conn.open ("www.adodtp.com:80")) {
conn.write ("GET /jsx/idVersion.xml HTTP/1.0\n\n");
reply = conn.read();
conn.close();
}
return reply
}

と思いトライしましたが、、、、ナント【SSL(セキュア→https)】のサイトは非対応!夢の計画はもろくも崩れ去りました!(SSL化したばっかりやのに…)

結局jsxに地道にXMLデータ埋め込みました。ほんでドキュメントバージョンとアプリバージョンをXMLでゲットして比較!

これで、完璧超人か?う~ん良いものができた。しかし、結局メジャーアップデートごとに改変しなければならずメンドイ…。

再ダウンロードは「あどびのすくりぷと」ページ

もしダウンロードされてる方がいれば、修正された「IDverChecker2019.jsx」を下記リンクからダウンロードして下さい(対応バージョンはCS4~CC2019までです)。

→web site:shock tm 「あどびのすくりぷと」ページ

便利だと思う度 ★★★★★
CC以降バージョン気にしない人 ★☆☆☆☆

スポンサーリンク

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です