« ソニックブーム | メイン | 明日で10月に入るとかなんとかかんとか »

2013年9月23日

Illustrator / 指定ディレクトリ下の*.aiを全てPDFに保存する >>Illustrator 

Illustrator で 指定ディレクトリ下の*.aiを全てPDFに保存するスクリプトサンプル
inddでもちょっと作り変えれば使えます。200ページあったりすると手作業ではやってられないからね。
// ===========================================================
//
//	指定フォルダ以下の.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; //配列を返す
}

ダウンロードしたいならこちらからどうぞ。:BatchPDF.txt
twitterこの記事をTwitterでみんなに教える。

投稿者 debizoh : 2013年9月23日 23:58



トラックバック

現在、この記事はトラックバックを受け付けておりません。


コメント

現在、この記事はコメントを受け付けておりません。