ブックのスタイルソース設定と同期

ExtendScriptでInDesignのブックのスタイルソースを設定して同期する方法 ブック

InDesignのブックを同期するときは、スタイルソースを設定をしてから実行します。

もちろん、同期オプションの設定の設定も欠かせません。
同期オプションの設定は、こちら↓↓をどうぞ。

ドキュメントサンプル

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

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のプロパティを使っています。

コメント

タイトルとURLをコピーしました