InDesignのブックを同期するときは、「スタイルソースの設定」がどのドキュメントになっているかの確認が必要です。
この記事のスクリプトでも、InDesignのブックを同期するまえに「スタイルソースの設定」から始めています。
同期前に必要な「同期オプションの設定」については、こちら
【InDesignのスクリプト作成】ブックの同期オプションを設定する | スクリプちん
InDesignの「ブックの同期」とは、ブックに登録したドキュメント全体の設定を、特定のドキュメント設定に自動で合わせる機能です。 「ブックの同期」を使えば、InDesignで…
Adobe公式サイト Adobe InDesignの機能を詳しく見てみる
目次
ドキュメントサンプル
次のような、先頭のドキュメント「doc01.indd」にスタイルソースが設定されているブックがあります。
このスタイルソースを、最後の「doc03.indd」に変更して同期します。
コードサンプル
#target indesign
// ブックを開く
var objBook = app.open("/Users/〜〜〜/book01.indb");
// 最後のドキュメントにスタイルソースを設定する
objBook.styleSourceDocument = objBook.bookContents[-1];
// ブックを同期する
objBook.synchronize();
実行結果
doc03にスタイルソースのマークがついて、同期が実行されました。
サンプルコードの解説と補足
ブックに限ったことではありませんが、スタイルソースを設定する際、サンプルコードではbookContentsで [-1] を指定しています。
次のようにlengthでちゃんと書いてもいいんですが、面倒くさいので、コレクションの最後を指定するときはだいたい [-1] と書いています。
objBook.styleSourceDocument = objBook.bookContents[objBook.bookContents.length-1];
スタイルソースを変更する前に、もとのスタイルソースの情報を取得したいときは、次のようなプロパティを使うと名前やidが取得できます。
スタイルソースのプロパティ
- 名前を取得する:(ブックオブジェクト).styleSourceDocument.name
- idを取得する:(ブックオブジェクト).styleSourceDocument.id
styleSourceDocumentのプロパティは、bookContentのプロパティと同じように使えます。
bookContentは、ブックにドキュメントを追加するときにも使います。
ブックにドキュメントを追加するスクリプトはこちら
【InDesignのスクリプト作成】ブックの作成とドキュメントの追加削除
InDesignのブックは、個々のInDesignドキュメント(inddファイル)を登録して一括管理できる便利な機能です。 ブックも、ドキュメントと同じようにスクリプトで操作できま…
Adobe公式サイト Adobe InDesignの機能を詳しく見てみる