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

Blue-Screeeeeeen.net-よそいちのDTPメモ-

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

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

公開日:2017年12月25日 最終更新日:2019年6月8日

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

 これが、

使用前


こうなります。

使用後


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

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


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

タグ:


広告

関連している他の記事

更新履歴


  • 最近の投稿

  • 月別の記事

  • 人気の記事

    広告