InDesignのブックは、個々のInDesignドキュメント(inddファイル)を登録して一括管理できる便利な機能です。
ブックも、ドキュメントと同じようにスクリプトで操作できます。
今回紹介するスクリプトコードは、次の順番で動作します。
- 新規にブックを作成
- ブックに既存のドキュメントを3つ登録
- 登録したドキュメントの情報を取得してアラート表示
- 登録した2番目のドキュメントを削除
Adobe公式サイト Adobe InDesignの機能を詳しく見てみる
目次
ドキュメントサンプル
次のファイル名で、InDesignのドキュメントファイルを3つ用意しました。
- doc01.indd(2ページ分)
- doc02.indd(1ページ分)
- doc03.indd(1ページ分)
コードサンプル
#target indesign
//ブックを作成する
var objBook = app.books.add("/Users/〜〜〜/Documents/WORK/book01.indb");
//ドキュメントをブックに追加する
objBook.bookContents.add("/Users/〜〜〜/Documents/WORK/doc01.indd");
objBook.bookContents.add("/Users/〜〜〜/Documents/WORK/doc02.indd");
objBook.bookContents.add("/Users/〜〜〜/Documents/WORK/doc03.indd");
//
ブックの先頭のドキュメントの情報をアラート表示
alert(
"名前: " + objBook.bookContents[0].name + "\r\n" +
"id: " + objBook.bookContents[0].id + "\r\n" +
"ページ範囲: " + objBook.bookContents[0].documentPageRange + "\r\n" +
"ファイルパス: " + objBook.bookContents[0].filePath + "\r\n" +
"ファイル名: " + objBook.bookContents[0].fullName + "\r\n" +
"ドキュメントの状態: " + objBook.bookContents[0].status);
//2番目のドキュメントをブックから削除する
objBook.bookContents[1].remove();
実行結果
サンプルコードの解説
18行目の「statusプロパティ」では、「ドキュメントの状態」を示す次の定数が返ります。
カッコ内は、10進数表記です。
- 使用可能:BookContentStatus.NORMAL(1852797549)
- ドキュメントが開いている:BookContentStatus.DOCUMENT_IS_OPEN(1148150607)
- ドキュメントがブックの外で変更されている:BookContentStatus.DOCUMENT_OUT_OF_DATE(1148150596)
- ドキュメントが指定の場所にない:BookContentStatus.MISSING_DOCUMENT(1148150605)
- ドキュメントがロックされている:BookContentStatus.DOCUMENT_IN_USE(1148150601)
例えば、アラート画面では ”1852797549” と表示されているので、使用可能のBookContentStatus.NORMALの状態が取得されています。
Adobe公式サイト Adobe InDesignの機能を詳しく見てみる