< 位置と大きさの取得 >

 

PageItemの大きさは「Bounds」という短形座標で記録されています。これらはgeometricBoundsvisibleBoundsという2つのプロパティから取得できます。

 

  • geometricBounds: オブジェクトの実体を基準とした座標。端的にいえばパスのアウトラインの大きさを表す。
  • visibleBounds: オブジェクトの見た目、すなわちパスに線が設定されていればそれも含めた大きさを表す。

 

いずれの値もオブジェクトの左上と右下の座標が配列として記録されています。その順番は以下の通りです。

var selObj= app.activeDocument.selection[0]; //選択しているオブジェクト(ひとつだけ)
$.writeln ('visibleBounds ---------------');
$.writeln ('y1= '+selObj.visibleBounds[0]); //左上Y座標
$.writeln ('x1= '+selObj.visibleBounds[1]); //左上X座標
$.writeln ('y2= '+selObj.visibleBounds[2]); //右下Y座標
$.writeln ('x2= '+selObj.visibleBounds[3]); //右下X座標
$.writeln ('geometricBounds ---------------');
$.writeln ('y1= '+selObj.geometricBounds[0]); //左上Y座標
$.writeln ('x1= '+selObj.geometricBounds[1]); //左上X座標
$.writeln ('y2= '+selObj.geometricBounds[2]); //右下Y座標
$.writeln ('x2= '+selObj.geometricBounds[3]); //右下X座標

 

なお、オブジェクトが回転している場合は、geometricBounds、visibleBoundsともに、回転を反映した矩形座標の値になります。

 

< 位置と大きさの変更 >

 

これらを変更することによって、オブジェクトの位置と大きさを変更することが可能です。以下の例は、選択されているオブジェクトの天地左右を10/単位づつ拡大します。

 

var selObj= app.activeDocument.selection[0]; //選択しているオブジェクト(ひとつだけ)
selObj.visibleBounds= [
    selObj.visibleBounds[0],
    selObj.visibleBounds[1],
    selObj.visibleBounds[2]+10,
    selObj.visibleBounds[3]+10 ];

 

なお、位置や大きさを変更する方法として、move関数transform関数を使う方法もあります。

 

 

Joomla templates by a4joomla