ドキュメントを開くにはopen関数を使います。開きたいドキュメントのFileオブジェクトを作成し、それを引数とします。

//ドキュメントを開く
var fObj= new File('~/Desktop/xyz.ai');
app.open(fObj);

参照:ファイルのパスからFileオブジェクトを作成する 

 

第2引数はオプションで、Illustrator 9より前のバージョンで作成されたドキュメント(※)に対してのみ、カラースペースを指定して開くことができます。設定する値はDocumentColorSpace定数(下記参照)で、以下の例ではCMYKモードでドキュメントを開きます。※ドキュメントにカラースペース設定がなかった頃

app.open(fObj, DocumentColorSpace.CMYK);

なお、該当する書類を開くときにこのオプションが設定されていない場合、ユーザーにモードを選択させるダイアログが開きます。

このオプションはIllustrator 9以降で作成されたドキュメントを開く際には無視されます(エラーにならない)ので、連続してドキュメントを開くとき、あらかじめカラーモードが決まっているならこのオプションを設定しておくと、古いドキュメントに遭遇してダイアログで動作が中断されるのを防ぐことができます。

・DocumentColorSpace定数

DocumentColorSpace.CMYK CMYKモード
DocumentColorSpace.RGB RGBモード

 

第3引数も主に古いドキュメントを開く際のオプションで、OpenOptionsオブジェクトを渡します。

例えばIllustrator 11より前のバージョンで作成されたドキュメントを開こうとしたときに「レガシーテキストを更新するか?」と尋ねられることがありますが、このようなドキュメントを開く際の挙動をこのオプションであらかじめ設定することが可能です。

var fObj= new File('~/Desktop/xyz.ai'); //任意のFileオブジェクト
if (fObj != null) {
    var opt = new OpenOptions;
    opt.updateLegacyText = true;
    app.open(fObj, DocumentColorSpace.CMYK, opt);
}

まず、new演算子でOpenOptionsオブジェクトを作成し、必要なプロパティに値を設定します。そして、そのOpenOptionsオブジェクトを第3引数として渡します。

なお、OpenOptionsは以下のようなプロパティを持っています。

 

・OpenOptionsの設定値

convertCropAreaToArboard default: true Illustrator CS4より前に作成されたドキュメントを開くときに、トリミング領域をアートボードに変換するか否か。falseの場合はトリミング領域を破棄
convertTilesToArboard default: false Illustrator CS4より前に作成されたドキュメントを開くときに、印刷タイルをアートボードに変換するか否か
createArtboardWithArtworkBoundingBox default: false Illustrator CS4より前に作成されたドキュメントを開くときに、アートワーク境界ボックスのサイズでアートボードを作成するか否か
preserveLegacyArtboard default: true Illustrator CS4より前に作成されたドキュメントを開くときに、古いタイプのアートボードを保持するか否か
updateLegacyGradientMesh default: true Illustrator CS3より前に作成されたドキュメントを開くときに、グラデーションメッシュオブジェクトのスポットカラーを保持するか否か
updateLegacyText default: false Illustrator 11より前に作成されたドキュメントを開くときに、レガシーテキストを更新するか否か

 

複数のプロパティを設定する場合は以下のようになります。

var opt = new OpenOptions;
opt.convertCropAreaToArboard = true;
opt.convertTilesToArboard = false;
opt.createArtboardWithArtworkBoundingBox = false;
opt.preserveLegacyArtboard = true;
opt.updateLegacyGradientMesh = true;
opt.updateLegacyText = false;

 

<各種ライブラリを開く>

OpenOptionsオブジェクトにはもうひとつopenAsというプロパティがあり、これはほかのドキュメントにある各種ライブラリ(スウォッチなど)を開くときに使います。

これについては別項「各種ライブラリを開く」を参照してください。

 

<開くときにアラートを出さないようにする>

上記のようにOpenOptionsを設定することで古いドキュメントを開く際に出現するアラートへの対策はできますが、ドキュメントを開く際にはほかにも様々な条件によってアラートが出現します。

例えば、複数のページがあるPDFを開こうとすると「何ページ目を開くか?」と尋ねてきますが、これはスクリプトで開くときも同様です。よって、あらかじめ開くページ番号を伝えつつ開くことになりますが、それでもなおアラートが出てしまう仕様になっています。

こういったことへ対処するために、アプリケーションにあるuserInteractionLevelプロパティを変更します。

app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;

設定する値は以下のUserInteractionLevel定数で渡します。

UserInteractionLevel.DISPLAYALERTS 適宜アラートを表示
UserInteractionLevel.DONTDISPLAYALERTS アラートを表示しないようにする

 

実際にPDFを開く様子は「PDFを開く」を参照してください。

 

 

 

Joomla templates by a4joomla