「スクリプちん」のサイトデザインをリニューアル作業中です…^^;

【InDesignのスクリプト作成】ブックのスタイルソースを設定して同期する

当ページのリンクには広告が含まれています。
スクリプちん:InDesignのJavaScript「ブックの同期」

InDesignのブックを同期するときは、「スタイルソースの設定」がどのドキュメントになっているかの確認が必要です。

この記事のスクリプトでも、InDesignのブックを同期するまえに「スタイルソースの設定」から始めています。

同期前に必要な「同期オプションの設定」については、こちら

Adobe公式サイト  Adobe InDesignの機能を詳しく見てみる

目次

ドキュメントサンプル

次のような、先頭のドキュメント「doc01.indd」にスタイルソースが設定されているブックがあります。

InDesignのブックパネル。先頭のdoc01にスタイルソースが設定されている
一番上のドキュメントにスタイルソースのマークが表示

このスタイルソースを、最後の「doc03.indd」に変更して同期します。

コードサンプル

#target indesign
// ブックを開く
var objBook = app.open("/Users/〜〜〜/book01.indb");

// 最後のドキュメントにスタイルソースを設定する
objBook.styleSourceDocument = objBook.bookContents[-1];

// ブックを同期する
objBook.synchronize();

実行結果

doc03にスタイルソースのマークがついて、同期が実行されました。

InDesignのブックパネル。最後のdoc03にスタイルソースが設定されている
最後のドキュメントにスタイルソースを設定
InDesignブックの同期完了のメッセージ
「ドキュメントは変更されたかもしれません」って、わざわざ丁寧ね…

サンプルコードの解説と補足

ブックに限ったことではありませんが、スタイルソースを設定する際、サンプルコードではbookContentsで [-1] を指定しています。

次のようにlengthでちゃんと書いてもいいんですが、面倒くさいので、コレクションの最後を指定するときはだいたい [-1] と書いています。

objBook.styleSourceDocument = objBook.bookContents[objBook.bookContents.length-1];

スタイルソースを変更する前に、もとのスタイルソースの情報を取得したいときは、次のようなプロパティを使うと名前やidが取得できます。

スタイルソースのプロパティ
  • 名前を取得する:(ブックオブジェクト).styleSourceDocument.name
  • idを取得する:(ブックオブジェクト).styleSourceDocument.id

styleSourceDocumentのプロパティは、bookContentのプロパティと同じように使えます。

bookContentは、ブックにドキュメントを追加するときにも使います。

ブックにドキュメントを追加するスクリプトはこちら

Adobe公式サイト  Adobe InDesignの機能を詳しく見てみる

よかったらシェアしてね!
  • URLをコピーしました!
目次