【InDesign】選択オブジェクトから左右にのみオフセットがある下地を作る | Blue-Scre{7}n.net | よそいちのDTPメモ

トップページ » InDesign » 【InDesign】選択オブジェクトから左右にのみオフセットがある下地を作る

【InDesign】選択オブジェクトから左右にのみオフセットがある下地を作る

公開日:2017年12月25日 

 メリクリーーー∠( ゚д゚)/ オブジェクトと罫線がクロスするとき、四方を白抜きするのはよくやりますが、「左右だけヌキたい」というアクロバティックな指定が来ることがよくあります(あるんです)。それをなんとかするスクリプトです。

 これが、

使用前

こうなります。

使用後

 使用後、下地のオブジェクトと元のオブジェクトはグループ化されます。

 使用後、下地のオブジェクトと元のオブジェクトはグループ化

1個だけ版

//選択オブジェクトの左右にだけ伸びた下地をつくる
//1.選択オブジェクトと下地用のスウォッチを定義
var selObj=app.activeDocument.selection[0];
var white=app.activeDocument.swatches.itemByName("Paper");
//2.選択オブジェクトの座標、および下地に使うオフセット値を設定
var selObjBounds=selObj.visibleBounds;
var offset=1;
//3.選択オブジェクトの座標をもとに下地オブジェクト作る
var groundObj=app.activeDocument.rectangles.add();
with(groundObj){
  visibleBounds=[selObjBounds[0],selObjBounds[1]-offset,selObjBounds[2],selObjBounds[3]+offset];
  fillColor=white;
  sendToBack(selObj);
  }
//4.選択オブジェクトと下地をグループ化
app.activeDocument.groups.add([selObj,groundObj]);

複数版

//選択オブジェクトの左右にだけ伸びた下地をつくる
//1.選択オブジェクトと下地用のスウォッチを定義
var selObj=app.activeDocument.selection;
var white=app.activeDocument.swatches.itemByName("Paper");
var selObjCount=selObj.length;
for(var i=selObjCount-1; i > -1;i--){
  //2.選択オブジェクトの座標、および下地に使うオフセット値を設定
  var selObjBounds=selObj[i].visibleBounds;
  var offset=1;
  //3.選択オブジェクトの座標をもとに下地オブジェクト作る
  var groundObj=app.activeDocument.rectangles.add();
  with(groundObj){
    visibleBounds=[selObjBounds[0],selObjBounds[1]-offset,selObjBounds[2],selObjBounds[3]+offset];
    fillColor=white;
    sendToBack(selObj[i]);
    }
  //4.選択オブジェクトと下地をグループ化
  app.activeDocument.groups.add([selObj[i],groundObj]);
}

選択オブジェクトの下辺のみに


//選択オブジェクトの下辺にだけ伸びた下地をつくる
//1.選択オブジェクトと下地用のスウォッチを定義
var selObj=app.activeDocument.selection[0];
var white=app.activeDocument.swatches.itemByName("Paper");
//2.選択オブジェクトの座標、および下地に使うオフセット値を設定
var selObjBounds=selObj.visibleBounds;
var offset=1;
//3.選択オブジェクトの座標をもとに下地オブジェクト作る
var groundObj=app.activeDocument.rectangles.add();
with(groundObj){
visibleBounds=[selObjBounds[0],selObjBounds[1],selObjBounds[2]+offset,selObjBounds[3]];
fillColor=white;
sendToBack(selObj);
}
//4.選択オブジェクトと下地をグループ化
app.activeDocument.groups.add([selObj,groundObj]);


タグ:


広告