DTPab

DTPにまつわるあれこれ

「マスターページを適用するスクリプト」を作るスクリプト

var actDoc = app.documents[0];
var mstSpr = actDoc.masterSpreads;
for (var i=0; i<mstSpr.length; i++) {
  makeJSX(mstSpr[i].name+"_"+i);
}

function makeJSX(filename) {
  var F = new File("~/"+filename+".jsx");
  var scpt = "var doc = app.documents[0];\n";
  scpt += "var tgtMaster = $.fileName.match(/_([0-9]+)\\.jsx$/)[1];\n";
  scpt += "app.activeWindow.activeSpread.appliedMaster = doc.masterSpreads[tgtMaster];";
  F.open("w");
  F.write(scpt);
  F.close();
};

ドキュメントを開いた状態でスクリプトを実行すると、ユーザーフォルダに「マスターページ名_インデックス.jsx」というスクリプトができます。
要するに前面ドキュメントのマスターページ名を抽出して、それを当てるためだけのスクリプトを生成します。

大したエラー処理をしてないのですが遊んでみてください。

ちなみに、下記の部分がスクリプト自動生成先のファイルパスになります。

var F = new File("~/"+filename+".jsx");

"~/desktop/"+filename+".jsx"としてもらえばデスクトップだし、何ならInDesignのスクリプトフォルダを指定すれば……。