Windows XP
Adobe Illustrator CS3
ファイル内のテキストオブジェクトを、すべてアウトライン化します。
非表示・ロックレイヤー、非表示・ロックオブジェクトも処理対象となります。レイヤーの表示状態は保持され、処理完了後はすべてのレイヤーがロックされます。また、テキストオブジェクトの表示状態は保持され、処理完了後すべてのテキストオブジェクトのロックが解除されます。
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // AICS3_outline_folder.jsx // 全てのテキストをアウトライン化する // // 2011.05.23 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; } // alert(visibleflag[0]); // テキストフレームをカウントする。 textitems = mydocument.textFrames; textcount = textitems.length; // alert(textcount); // アウトライン化。 for( n=textcount - 1;n> -1;n--){ hiddenflag = textitems[n].hidden; textitems[n].locked = false; if( hiddenflag == false ){ textitems[n].createOutline(); }else{ newitem = textitems[n].createOutline(); newitem.hidden = true; } } // レイヤーの表示状態を元に戻し、ロックする。 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+"_out.ai"); mydocument.saveAs(savefile,options); activeDocument.close(SaveOptions.DONOTSAVECHANGES); } } alert("処理が完了しました。スクリプトを終了します。");