Illustratorで複数オブジェクトを選択→サイズ変更しようと思ったのですが結構難しかったので備忘録として。
環境
OS:macOS 10.14
editor:Sublime Text3
application:illustrator CC2018
やりたいこと
ExtendScriptを使ってIllustratorで以下作業を実行する。
1. ドキュメントにあるオブジェクトを全選択
2. 選択オブジェクトをグループ化
3. 選択オブジェクトのBounding Boxのサイズを取得
4. サイズを変更
やったこと
1. ドキュメントにあるオブジェクトを全選択
for ( var i = 0; i < activeDocument.pageItems.length; i++) {
try {
activeDocument.pageItem[i].selection = true ;
} catch(e) {
//何もしません
}
}
2. 選択オブジェクトをグループ化
var selObj = activeDocument.selection,
grpObj = activeDocument.groupItems.add();
for ( var i = 0; i < selObj.length; i++) {
selObj[i].move(grpObj, ElementPlacement.PLACEATEND)
}
groupItemオブジェクトに提供されているmoveメソッドを使ってgrpObj
にオブジェクトを追加(移動)させます。
move(グループオブジェクト, グループ内の移動先 ※パラメータは下図参照)
パラメータ | 移動先 |
---|---|
ElementPlacement.INSIDE | 指定したオブジェクトの内側 |
ElementPlacement.PLACEBEFORE | 指定したオブジェクトの前 |
ElementPlacement.PLACEATBEGINNING | 指定したオブジェクトの先頭 |
ElementPlacement.PLACEAFTER | 指定したオブジェクトの後 |
ElementPlacement.PLACEATEND | 指定したオブジェクトの末尾 |
3. 選択オブジェクトのBounding Boxのサイズを取得
ここがかなり難しかったです。
今回作成したコードは以下の通り。
// BoundingBoxのサイズを取得する関数を作成
function (target, boundsType) {
}