Adobe Illustrator CS3/CS4/CS5編 リンク画像を埋め込み画像にする

今回はリンク画像を埋め込み画像にするスクリプトと埋め込み画像をリンク画像に戻すスクリプトです。
最初は選択した画像がリンク画像の場合、埋め込み画像にするものです。これはリンクパネルで複数の項目を選択してから埋め込みのメニューを選択するのと同じです。


// 選択したものがリンク画像の場合のみ埋め込み画像にする
var selObj = app.activeDocument.selection;
for(var i=0; i<selObj.length; i++){
if (selObj[i].typename == "PlacedItem"){
selObj[i].embed();
}
}
選択した画像ではなくドキュメント内の全てのリンク画像に対して処理するには以下のようにします。
// ドキュメント内の全てのリンク画像を埋め込み画像にする
var imgObj = app.activeDocument.placedItem;
for(var i=0; i<imgObj.length; i++){
selObj[i].embed();
}
リンク画像を埋め込むのとは逆に埋め込み画像をリンク画像にしたい場合もあります。以下のスクリプトは「画像が傾斜していない、回転しない」という条件付きで再度自動的にリンクを設定します(拡大縮小されている場合は、正しく処理されます)。
// 選択画像を再リンク
var selObj = app.activeDocument.selection;
for(var i=0; i<selObj.length; i++){
if (selObj[i].typename == "RasterItem"){
var pItem = app.activeDocument.placedItems.add();
pItem.file = selObj[i].file;
pItem.matrix.mValueA = selObj[i].matrix.mValueA;
pItem.matrix.mValueB = selObj[i].matrix.mValueB;
pItem.matrix.mValueC = selObj[i].matrix.mValueC;
pItem.matrix.mValueD = -selObj[i].matrix.mValueD;
pItem.matrix.mValueTx = selObj[i].matrix.mValueTx;
pItem.matrix.mValueTy = selObj[i].matrix.mValueTy;
pItem.left = selObj[i].left;
pItem.top = selObj[i].top;
selObj[i].remove();
}
}

[サンプルをダウンロード]