イラストレーターで配置画像の再リンクをするちょっとおせっかいなスクリプト
配置された画像を指定したフォルダ内の画像で再リンクします。
拡張子だけ違う画像が複数ある場合は、優先順位が上の拡張子がついたものを配置します。
埋め込まれた画像も可能なら入れ替えます。
おせっかいなスクリプトです。予想外の動きをするかもしれません。
事故責任でどうぞ。
#include 'c.js';//http://svn.coderepos.org//share/platform/illustrator/javascript/lib/c.js #include 'matrixConvert.jsx';//http://d.hatena.ne.jp/kamiseto/20090502/1241251512 #include 'progressBar.js'; (function(){ var target = Folder.selectDialog ('入替画像があるフォルダを選択して下さい。'); if(!target.exists)return; var extentions = ['eps','psd','tiff','tif','jpg','jpeg'];//priority var extention = prompt ('ここで入力した拡張子を最優先に検索します。現在の優先順位['+extentions+']', 'psd', '拡張子を入力して下さい。'); if(extention)extentions.unshift (extention); var searchfile = function(ext,PL){ try{ var cF = File(target + PL.file.toString().replace(PL.file.parent,'').replace(/\.(.+)$/,"."+ext)); if(cF.exists)return cF; }catch(e){ } } var replacePlacedItem = function(replacefile,targetPlacedItem){ if(replacefile.constructor.name !== 'File')return; if(targetPlacedItem.constructor.name == 'PlacedItem')targetPlacedItem.file = replacefile; if(targetPlacedItem.constructor.name == 'RasterItem'){ var pA = app.activeDocument.placedItems.add(); try{ pA.file = replacefile; pA.rotate(matrixConvert.getRotation(targetPlacedItem)); pA.position = targetPlacedItem.position; pA.moveBefore(targetPlacedItem); pA.width = targetPlacedItem.width; pA.height = targetPlacedItem.height; targetPlacedItem.remove(); }catch(e){ pA.remove(); throw(e); } } } //c("S").f('PL').eachProgress(function(PL){extentions.each(searchfile,PL).test(0,replacePlacedItem,PL);}); c("S").f('PL','R').eachProgress(function(PL){extentions.each(searchfile,PL).test(0,replacePlacedItem,PL);}); })();