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

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

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

公開日:2017年12月25日 最終更新日:2018年2月21日

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

 これが、

使用前


こうなります。

使用後


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

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


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]);


タグ:


広告

  • 最近の投稿

  • 月別の記事

  • 今月の1枚

  • 人気の記事

    お買い物