レガシーテキスト一括変換

Illustrator CSやCS2で以前のバージョンで作成したai, epsファイルを開くと、テキストの更新をしますか? という確認のダイアログが表示されます。これはテキストエンジン(処理)が変わったためなのですが、たくさんのファイルを開く際にテキストが含まれているとご丁寧に毎度確認のダイアログを表示してくれます。一括して処理するようなチェックがあれば、良いのですがそれもないし環境設定にもない状態です。
そんな時はJavaScriptで解決。不思議な事にスクリプトからだと、そのようなダイアログを出さずに変換して保存することができてしまいます。
実際のスクリプトは以下のようになります。
(Illustrator CS2で動作します。CSでは動きません)

folderObj = Folder.selectDialog("フォルダを選択してください");
if (folderObj)
{
saveFolder = Folder.selectDialog("保存先のフォルダを選択してください");
if (saveFolder)
{
fileList = folderObj.getFiles("*.ai");
for (i=0; i<fileList.length; i++)
{
fileRef = new File(fileList[i]);
openOpt = new OpenOptions();
openOpt.updateLegacyText = true;
docObj = open(fileRef, DocumentColorSpace.CMYK, openOpt);
saveRef = new File(saveFolder+"/"+fileList[i].name);
activeDocument.saveAs(saveRef);
activeDocument.close();
}
}
}

ところがファイルメニューからスクリプトメニューから実行するとエラーになったりダイアログの文字が化けてしまいます。これはCS2のバグでIllustrator CS2上から実行すると日本語は正しく処理されません。これは、日本語が含まれる場合、期待通りに動作しないことを示します。日本語が含まれる場合に正しく処理させるためには、Extend Script ToolKitから実行するアプリケーションIllustrator CS2を選択し実行ボタンを押す必要があります。Extend Script ToolKitはMacOS Xの場合、アプリケーションフォルダ内にあるユーティリティフォルダ内のAdobeユーティリティフォルダ内にあります。

レガシーテキストを変換しないのであれば

openOpt.updateLegacyText = true;

openOpt.updateLegacyText = false;

とします。また、上記スクリプトは拡張子がaiのものだけを対象にしています。epsの拡張子のファイルを処理したい場合には

fileList = folderObj.getFiles("*.ai");

fileList = folderObj.getFiles("*.eps");

にしてください。
また、ドキュメントのカラーモードですが、

docObj = open(fileRef, DocumentColorSpace.CMYK, openOpt);

のようにCMYKで開くように指定しても有効なのはver 9より前(ver 8など)だけで、以後のものはカラーモードは変更されず、作成時のままになります。



[サンプルをダウンロード]