InDesign CS4も前のバージョンのスクリプトが動くように設計されている

Extend Script Toolkit CS4を見てもらえば分かるんですが、以前のバージョンのオブジェクトモデルを参照することができます。

InDesignで以前のバージョンのスクリプトを動作させるには[Scripts Panel]フォルダ内に、動作させたいバージョンのフォルダを作成します(以下のもの
Version 3.0 Scripts
Version 4.0 Scripts
Version 5.0 Scripts
この中にスクリプトファイルを入れて、スクリプトパネルから実行すれば、以前のバージョンのスクリプトでも動作させることができる仕様になっています。あくまでも仕様)
これらのフォルダ内ではそれぞれ別のスクリプト実行環境が動くということみたいです。で、どのバージョン向けの実行環境が動いているかということを知るためには
alert(app.scriptPreferences.version);
などとすればOK。3」4」5.0」6.0」上記のフォルダにいれてない場合)のいずれかの文字列を返してくれます。

で、実際はどうなのかというと、まずオブジェクトモデルは嘘です。(嘘というとAdobeが悪意を持っているような発言なので取り消します)以前のバージョンのまま、手を加えていないので、実態とあっていません。


(GoLivePackageがそのまま残っている)

試しに次のようなスクリプトを作成し、Version 5.0 Scripts」フォルダ内に入れて実行しましょう。

doc = app.activeDocument;
doc.exportFile(ExportFormat.SVG, File("g:\!temp\test.svg");
//ドキュメントをSVGファイルに書き出す

すると次のようなメッセージが。

最後の行に「インタープリタ:CS3_J (5.0)」とあるように、CS3用の実行環境が呼び出されて実行していることが分かります。しかし、CS3では実行できたSVG書き出しは、CS4では機能が削除されてしまったので実行できないのです。

だから、オブジェクトモデルは(以下略)そのほかにもいろいろありそう。

もっとも、これで文句を言ってもCS4用に書き直してくださいと言われて終わりのような気がしないでもない。