毎日のDTPを少しだけ便利にする道具たち。同じ作業の繰り返しやルーチンワーク。本当はPCの方が得意な仕事って、意外とたくさんある。スクリプトなど簡単なツールで、毎日をちょっと便利にしていこう。
JavaScript for Adobe Illustrator

配置画像をリンクから
埋め込みに全て変更する

Windows XP

Adobe Illustrator CS3

配置画像をリンクから
埋め込みに全て変更する

更新日:2011年9月9日(金)
制作環境:Windows XP・Adobe Illustrator CS3

リンクで配置されている画像を全て埋め込みにして、別名保存するJavaScriptです。

リンクで配置されている画像は全て埋め込まれます。ロック、非表示に設定されている画像、ロック、非表示に設定されているレイヤー上の画像も埋め込みにします。別名保存後のファイルは、画像オブジェクトの表示非表示は保持され、画像のロックは全て解除されます。レイヤーの表示状態は保持し、全てのレイヤーがロックされます。

環境によって、埋め込み時に画像サイズ、位置が変わるといった不具合が発生することがあります。ご使用の際は、事前のバックアップ、処理後の確認をお勧めします。確実に画像を埋め込むのであれば、「12 リンクの配置画像の有無を確認する」のスクリプトで、リンクの有無を確認していただき、手動で埋め込み作業を行ってください。

a001_AICS3_embed.zip(2.31KB)
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// AICS3_embed_folder.jsx
// 使用されているすべてのリンク画像を埋め込みにします。
//
// 2011.05.02  ver.1.0
//
// System requirements : Adobe Illustrator CS3 13.0.3 Windows XP SP3
// Copyright(c) 2011 Kuro
// http://www3.ocn.ne.jp/~art_mac/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var folderObj = Folder.selectDialog("Illustratorファイルの入っているフォルダを選択してください");
var folder = Folder.selectDialog("保存するフォルダを選択してください");

if (folderObj != null){
 fileList = new Array;
 fileList = folderObj.getFiles("*.ai");
 for (f = 0 ; f <= fileList.length-1 ; f++){
  var fileObj = new File(fileList[f]);
  open(fileObj);
  flag = fileObj.open();
  if (flag == true){
   mydocument = app.activeDocument;

   // レイヤーをカウントする。
   layercount = mydocument.layers.length;

   var visibleflag = [];

   // レイヤーの表示状態を記憶し、レイヤーの表示、ロック解除を行う。
   for( i=0; i<layercount; i++ ){
    mylayer = mydocument.layers[i];
    visibleflag[i] = mylayer.visible;
    mylayer.visible = true;
    mylayer.locked = false;
    }

   // 配置画像をカウントする。
   picobj = mydocument.placedItems;

   // 埋め込み。
   for( n=picobj.length-1; n>-1; n--){
    picobj[n].locked = false;
    picobj[n].embed();
    }

   // レイヤーの表示状態を元に戻し、ロックする。
   for( m=0; m<layercount; m++){
    mylayer = mydocument.layers[m];
    if( visibleflag[m]  == true ){
     mylayer.locked = true;
     }else{
      mylayer.visible = false;
      mylayer.locked = true;
     }
    }
   }
  namecount = (fileObj.name).lastIndexOf("."); // fileObj.nameの値で"."の位置を取得
  fname = (fileObj.name).substr(0, namecount);
  options = new IllustratorSaveOptions();
  options.embedICCProfile=true;
  savefile = new File(folder.fsName+"/"+fname+".ai");
  mydocument.saveAs(savefile,options);
  activeDocument.close(SaveOptions.DONOTSAVECHANGES);
  }
 }

alert("処理が完了しました。スクリプトを終了します。");
inserted by FC2 system