イラストレーターに埋め込まれた画像を書き出して再配置するスクリプト

タイトルどおりです。
イラストレーターに埋め込まれた画像をPSDに書き出して再配置します。
とりあえず、埋め込まれた画像すべてに反応します。
ひょっとしたら、小さすぎる画像や、大きすぎる画像はスキップするべきかもしれません。
そこらへんは適当に変えてみてください。

#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
#target 'illustrator';
(function(){
	if(app.activeDocument.selection.length > 0){
		alert("何も選択しない状態で実行してください。");
		return;
	}
var targetFolder = Folder.selectDialog ();
var reso = prompt ('解像度(pixel/inch)を数字で入力してください。0を入力すると現在の解像度を使用します。', 350, '書き出す解像度(pixel/inch)を入力して下さい。')*1;
var i = 0;
	c(app.activeDocument.rasterItems).each(function(){
			this.selected = true;
			app.copy();
			var newDoc = app.documents.add();
			app.paste();
			var ras = newDoc.selection[0]
			
			//get VertivalScale,HorizontalScale,Rotate
			var RasterMatrix = matrixConvert.getAll(ras);
			
			//if reso is zero
			if(reso == 0)reso = 72*(100/(RasterMatrix.hs >= RasterMatrix.vs ? RasterMatrix.hs : RasterMatrix.vs));
			ras.resize (10000/RasterMatrix.hs*(72/reso),10000/RasterMatrix.vs*(72/reso));
			ras.rotate (RasterMatrix.rotation*-1);
			
			//Make ExportOptions
			var options = new ExportOptionsPhotoshop();
			options.imageColorSpace = this.imageColorSpace;
			options.resolution = reso;
			options.antiAliasing = false;
			
			//Export to saveFile as PSD
			var saveFile = File(targetFolder+'/'+i+'.psd');
			app.activeDocument.exportFile (saveFile, ExportType.PHOTOSHOP, options);
			newDoc.close (SaveOptions.DONOTSAVECHANGES);
			this.selected = false;
			
			//Replace RasterItem
			var pA = app.activeDocument.placedItems.add();
            try{
                pA.file = saveFile;
                pA.rotate(RasterMatrix.rotation);
                pA.position = this.position;
                pA.moveBefore(this);
                pA.width = this.width;
                pA.height = this.height;
                this.remove();
            }catch(e){
                pA.remove();
                throw(e);	
            }
			pA.selected =false;
			i++;
	});
})();