見出し画像

【Indesign】全スプレッド上にある全オブジェクトを等距離移動

2月にオンデマンド用印刷機がXEROX Versant 80 PressからRICOH Pro C7200Sに切り替わった。
印刷機の機能も把握できていないので、元データで対応する。

今回は洋2封筒への宛名印刷。
ベロを開いてから印刷する必要がある。
以前はデータのサイズそのものを変更して作っていたのだが、断ち落とし寸法を変えるだけで済むことに、遅ればせながら気づいたので、封筒サイズに戻そうとした。
ドキュメントサイズを変更して保存してpageItemsを使用して全ページ分のオブジェクトを同じように移動させようとしたが、ドキュメントサイズ変更後にページの外側になってしまったオブジェクトが動かせなかった。
慌てていろいろ調べた結果、修正したのが以下のスクリプト。
pagesをspreadsに変えるだけで済んだ。
無事全ページの全オブジェクトを移動させることができた。


//Indesignで宛名データを印刷する際、
//封筒のベロを開いて印刷するなど、ドキュメントサイズを変更した後、
//全ページの全オブジェクトを同じ距離だけ移動させる場合に使用する。

alert("Indesignで宛名データを印刷する際、"+"\n"+"封筒のベロを開いて印刷するなど、ドキュメントサイズを変更した後、"+"\n"+"全ページの全オブジェクトを同じ距離だけ移動させる場合に使用する。");

var idouX = Number(prompt("左(←)はマイナス、右(→)はプラス",0));
var idouY = Number(prompt("上(↑)はマイナス、下(↓)はプラス",0));
var myDoc = app.activeDocument;
for(i=0;i<myDoc.spreads.length;i++){
    var mySpreads = myDoc.spreads[i];
    for(j=0;j<mySpreads.pageItems.length;j++){
        var myObj = mySpreads.pageItems[j];
        myObj.geometricBounds = [
		myObj.geometricBounds[0]+idouY,
		myObj.geometricBounds[1]+idouX,
		myObj.geometricBounds[2]+idouY,
		myObj.geometricBounds[3]+idouX
		]
    }
}

今回も参考にしたのは
 古籏一浩 著
 InDesign自動化サンプルプログラム逆引きリファレンス上・下
 インプレスR&D. Kindle Edition.
ありがとうございました。

上記の電子書籍をAmazonで買ったのだが、上・下合本版が発売されたのを機に、やたらとおすすめしてくるのが、ちょっとムカつくんだよなぁ。交換してくれないかしらん。

この記事が気に入ったらサポートをしてみませんか?