カネムーメモ in MyBetaBook

ファイル操作基本1: ファイルをInDesignで開く
var inddPath = "~/Desktop/test.indd";
var inddFile = new File( inddPath );
app.open( inddFile );

デスクトップにある「test.indd」というファイルをInDesignで開きます。

1行目 var inddPath = "~/Desktop/test.indd"; で変数 inddPath に パスを設定し、

2行目 var inddFile = new File(inddPath); で変数 inddFile にファイルの参照を作り、

3行目 app.open( inddFile ); でファイルをアプリケーションに渡して開く。

そういう流れです。

これらをひとつひとつ変数に入れるのではなく、一度にやってしまおうとすれば

app.open( new File( "~/Desktop/test.indd" ) );

になりますね。

ただし、これだと別のファイルを開こうとする度にスクリプトの中身を書き換えなければならなくなるので、実用的ではありません。

ファイル選択ダイアログを開き、それで選択したファイルをInDesignで開いてみます。

var inddFile = File.openDialog('.inddファイルを選択');
app.open( inddFile );

このスクリプトを実行すると、以下の画像のような画面が開きます。

ここで目的のInDesignファイルを選択すると、InDesignでそのファイルを開いてくれます。

ただし、これだと何もファイルを選択しなかった場合、エラーになってしまいます。

このスクリプトを使うオペレーターがこの画面を見ると、びっくりして「マシンが壊れた」とか「何か操作を間違えたか?」などと思います。二度とスクリプトを使わなくなってしまうかもしれません。

なので、この場合はちゃんとファイルが選ばれたかどうかを確認してやります。

var inddFile = File.openDialog('.inddファイルを選択');
if( inddFile ) {
    app.open( inddFile );
}

if( inddFile ) { } を入れる事で、「ファイルが選択されたなら」開くという意味になって、選択しなければ何も言わずに閉じてくれるようになります。

このように失敗する場合のあるスクリプトは、ちゃんとif文で回避するようにしましょう。

そして、 app.open( inddFile ); は結果にDocumentオブジェクトを返しています。開いたドキュメントです。

開いたドキュメントに対して何か操作をしたい場合には、それに対してまた処理をかければ良いわけです。

app.open( inddFile ); が返すドキュメントを変数docに入れて、とりあえずalertに表示してみます。

var inddFile = File.openDialog('.inddファイルを選択');
if( inddFile ) {
    var doc = app.open( inddFile );
    alert( doc );
}

ダイアログで選択したinddファイルが開き、以下のようなアラートが出ます。

カネムーメモ in MyBetaBook

Illustratorのアートワークを線だけにしたい
Illustrator Script トラッキングでテキストばらし
ファイル操作基本1: ファイルをInDesignで開く
ファイル操作基本2: フォルダ内のinddファイルを全て開く