// =========================================================== // UTF-8 plaintext // 指定フォルダ以下の.aiを全てPDF に書き出すScript // // 2013.09.23 debizoh / MasamiOhkubo // =========================================================== //app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;//CS3でのおまじない(ダイアログウインドウの表示許可みたいなもの) var document_open_folder = Folder.selectDialog("Aiドキュメントのあるフォルダを選択してください"); if (document_open_folder == null){ //フォルダ選択ダイアログでキャンセルを押したらここを通る exit(); } var save_folder = Folder.selectDialog("保存するフォルダを選択してください"); if (save_folder == null){ //フォルダ選択ダイアログでキャンセルを押したらここを通る exit(); } var ai_List = F_findFile(document_open_folder); //関数呼び出し(選択フォルダ以下全てのaiファイル取得) if ( ai_List.length === 0 ) { //返り値の配列が0なら alert("Aiファイルが見つかりませんでした"); exit(); } for (i=0; i < ai_List.length; i++) { // もし、リンク切れ、フォント環境の違いが多々でるようなら以下有効にして、アラートでないように //app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTRACT //open fileObj = new File(ai_List[i].fsName); open(fileObj); fileObj.open(); document = app.activeDocument; namecount = (fileObj.name).lastIndexOf("."); distname = (fileObj.name).substr(0, namecount); options = new PDFSaveOptions(); options.pDFPreset = "[PDF/X-1a:2001 (日本)]"; // Adobe PDFプリセット名を入力してください。 options.preserveEditability = false; savefile = new File(save_folder + "/" + distname + ".pdf"); document.saveAs(savefile,options); activeDocument.close(SaveOptions.DONOTSAVECHANGES); } function F_findFile(document_open_folder) { var ai_List=[]; //返り値用の配列 var all_List = document_open_folder.getFiles(); //フォルダの内容を全て取得 for (var i=0; i < all_List.length; i++) { if(all_List[i] instanceof Folder) { //フォルダなら... var res = F_findFile(all_List[i]); //再帰的呼び出し ai_List= ai_List.concat(res); //返り値を配列に加える(配列の結合) } var all_List_fName = all_List[i].name; if (all_List_fName.match (/\.ai/)) { ai_List.push(all_List[i]); } } return ai_List; //配列を返す }