Adobe InDesign CS3/CS4/CS5編 Bridgeで選択したファイルをInDesignに配置する

Adobe Bridgeのウィンドウで選択した画像ファイルを自動的にInDesignに配置するスクリプトです。なお、スクリプトはBridgeやInDesignから実行するのではなくESTK上から実行してください。実行する際のターゲットアプリケーション名はBridgeになります。
以下のスクリプトはBridge CS3のウィンドウで選択された画像をファイルをInDesign CS3に配置するものです。実行する前にあらかじめ画像やテキストファイルを貼り付けるドキュメントを用意しておく必要があります。貼り付けられる画像は現在開かれているInDesignの最前面のウィンドウの開いているページ(アクティブページ)になります。


var fileList = app.document.selections;
for(var i=0; i<fileList.length; i++){
myBTalk(fileList[i].path);
}

function myBTalk(filename){
var scriptcode = 'var fPath = "'+filename+'";';
scriptcode += 'var imgObj = app.layoutWindows[0].activePage.textFrames.add();';
scriptcode += 'imgObj.contentType = ContentType.graphicType;';
scriptcode += 'imgObj.place(new File(fPath));';
scriptcode += 'imgObj.fit(FitOptions.frameToContent);';
//$.writeln(scriptcode);
var btObj = new BridgeTalk;
btObj.body = scriptcode;
btObj.target = "indesign-5";
btObj.send();
}


特定の拡張子を持つファイルだけを貼り付けたい場合には以下のようにします。最初の1行の拡張子を変更、追加することで任意の拡張子を持つ画像ファイルを配置することができます。

var ext = [".jpg", ".png", ".gif"]; // 拡張子
var fileList = app.document.selections;
for(var i=0; i<fileList.length; i++){
for(var j=0; j<ext.length; j++){
if (fileList[i].path.indexOf(ext[j]) > -1){
myBTalk(fileList[i].path);
}
}
}

function myBTalk(filename){
var scriptcode = 'var fPath = "'+filename+'";';
scriptcode += 'var imgObj = app.layoutWindows[0].activePage.textFrames.add();';
scriptcode += 'imgObj.contentType = ContentType.graphicType;';
scriptcode += 'imgObj.place(new File(fPath));';
scriptcode += 'imgObj.fit(FitOptions.frameToContent);';
//$.writeln(scriptcode);
var btObj = new BridgeTalk;
btObj.body = scriptcode;
btObj.target = "indesign-5";
btObj.send();
}


InDesign CS3でなくCS4で実行する場合は以下のようにしてください。

btObj.target = "indesign-6";

InDesign CS5の場合は以下のように変更してください。

btObj.target = "indesign-7";

InDesign CS5.5は持っていないので動作確認していません。多分btObj.target = "indesign-8";と指定すれば動くのではないかと思います。

[サンプルをダウンロード]