Blue-Screeeeeeen.net-youichi7imazekiのDTPメモ-

トップページ » Illustrator » 【Illustrator】選択したオブジェクトをそれぞれアートボードにするスクリプト

【Illustrator】選択したオブジェクトをそれぞれアートボードにするスクリプト

公開日:2017年3月21日 最終更新日:2017年7月21日

 選択したオブジェクトをそれぞれアートボードにするスクリプトです。

 複数の図が、1つのアートボードで作られているときに使用するとスッキリします(でも最終的にInDesignに配置する場合はあまり得した気がしない。理由は後述)。

 注意すべき仕様は「マスクした画像があるオブジェクトの場合、そのオブジェクトのアートボードはマスクしていない画像の大きさになる」「アートボードの番号はレイヤーパネルでの階層順になる」の2点です。CS4ではレイヤーパネルであらかじめ順序をいじっておくしかありませんが、CS5以降であればスクリプト実行後に[アートボード]パネルで順序を入れ替えることができます。


スクリプト本文

前回版(アートボードはレイヤーパネルの並び順)はこちら

//選択したオブジェクトをオブジェクトのバウンディングボックスのサイズでそれぞれアートボードに
//仕様:マスクした画像があるオブジェクトの場合、アートボードはマスクしていない画像の大きさになります
//仕様2:アートボードの番号は左上のからZ型に1、2、3...となります。
//Illustrator CS4、6、CC2015で動作確認
function sortselObj(a, b){
  var ax = a.geometricBounds[0];
  var ay = a.geometricBounds[1];
  var bx = b.geometricBounds[0];
  var by = b.geometricBounds[1];
  if (ay < by) {
    return 1;
  } else if (ay > by) {
    return -1;
  } else if (ay == by) {
    if (ax == bx) {
      return 0;
    } else if (ax > bx) {
      return 1;
    } else if (ax < bx) {
      return -1;
    }
  }
}

var objCount = app.selection.length;
for(var i=0; i <objCount; i++){
  var selObj = app.selection;
  selObj.sort(sortselObj)//並びを替える
  var x1 = selObj[i].geometricBounds[0];
  var y1 = selObj[i].geometricBounds[1];
  var x2 = selObj[i].geometricBounds[2];
  var y2 = selObj[i].geometricBounds[3];
  var objWidth = x2-x1;
  var objHeight = y2-y1;
  var newartboards = app.activeDocument.artboards.add( [x1, y1, x1+objWidth, y1+objHeight]);
};
var artrem = app.activeDocument.artboards[0].remove();//元あったアートボードを削除


 図はそれぞれアートボードに分かれていたほうがいいかなと思ったんですが、InDesignに「アートボードを使ったaiファイル」を配置する場合はわざわざ読み込みオプションを指定して再配置しないといけません。


 なので、1つのアートボードに図がまとめられていても、図ごとにアートボードが分けられていても、「配置オプションを指定する手間」か「グラフィックフレームの中身を移動する手間か」ということであまり変わらなかったりします。InDesignの読み込みオプションにも手を出せるスクリプト作るか…

というわけで作りました。これでマルチアートボード使用のIllustratorをInDesignに配置しているとき、ページを変更して再リンクできます。


【InDesign】ai/pdfのアートボード/ページを指定して同一ファイルに再リンクするスクリプト



タグ:


  • 最近の投稿

  • カテゴリー

  • 月別の記事

  • おことわり

     Adobe、InDesign、Illustrator、Photoshop、Acrobatは、Adobe Systems Incorporated(アドビシステムズ社)の米国および他の国における商標または登録商標です。本サイトでは、RおよびTMを省略しております。