クリエイター手抜きプロジェクト[431]Adobe Illustrator CS6〜CC編 フォルダ内にあるAIファイルにオーバープリントが設定されているか調べる/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,500文字)



また、オーバープリントネタです。今回のスクリプトは、フォルダ内にあるAIファイルにオーバープリントが設定されているかを調べるものです。調べた結果は、指定したフォルダにエイリアスとして作成されます。調べるフォルダにサブフォルダが含まれていても正常に動作します。

CS6/CCで動作確認していますが、多分それよりも前のバージョンでも動くと思います。バージョンごとに細かい変更がされていることがあるので、動作バージョンはCS6/CCにしてあります。





// IllustratorのAIファイルにオーバープリントがあるか検索しエイリアスを作成する
(function(){
// AIファイルがあるフォルダを指定する
var folderObj = Folder.selectDialog("オーバープリントチェックするAIファイルがあるフォルダを選択してください");
if (!folderObj){ return; } // キャンセルされた場合は何も処理しない
// エイリアスを入れるフォルダを指定する
var saveFolder = Folder.selectDialog("結果(エイリアス)を保存するフォルダを選択してください");
if (!saveFolder){ return; } // キャンセルされた場合は何も処理しない
makeAliasList(folderObj);
alert("オーバープリントの検索が終了しました");
// エイリアスを作成する関数
function makeAliasList(folderObj){
// aepファイル一覧を取得する
var fileList = folderObj.getFiles("*.ai");
// ファイルの数だけ開いて文字列を検索する
for(var i=0; i<fileList.length; i++){
app.open(fileList[i]);
var flag = checkOverPrint();
if (flag == true){
// ファイル名が重複しないようにスラッシュをアンダーバーにしたファイル名を使う
var filename = fileList[i].fsName.replace(new RegExp("/", "g"), "_");
// エイリアスとなるファイルオブジェクトを作成する
var aliasFileObj = new File(saveFolder.fsName+"/"+filename);
// エイリアスを作成する
var flag = aliasFileObj.createAlias(fileList[i]);
if (flag == false){
$.writeln("失敗:"+filename);
// もし、アラートダイアログを表示した方がいい場合は以下の行の//を消してください。
// alert("失敗:"+filename);
}
}
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
// フォルダを含めた一覧を取得する
fileList = folderObj.getFiles();
for(var i=0; i<fileList.length; i++){
// フォルダかどうか調べる
if(fileList[i].getFiles){
makeAliasList(fileList[i]); // フォルダの場合は再帰呼び出し
}
}
// 全ての図形のオーバープリント(塗り・線)を調べる
function checkOverPrint(){
var count = 0;
var items = app.activeDocument.pageItems;
for(var j=0; j<items.length; j++){
var t = items[j].typename;
// 文字の場合は1文字単位で処理をする
if (t == "TextFrame"){
for(var i=0; i<items[j].characters.length; i++){
var f1 = items[j].characters[i].overprintFill;
var f2 = items[j].characters[i].overprintStroke;
if (f1 || f2){ return true; }
}
}else{
var f1 = items[j].fillOverprint;
var f2 = items[j].strokeOverprint;
if (f1 || f2){ return true; }
}
}
}
}
})();


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

昔書いた原稿と最近のおりまぜていたら、何か微妙な掲載順になってしまいました。だいぶ原稿のストックがなくなったので、デジクリの夏休み(8月)にでも、またストック増やしておかないと。

・Apple Watch(アップルウォッチ)使い方辞典
< http://www.openspc2.org/reibun/AppleWatch/2015/ >

・Photoshop自動化基本編
< http://www.amazon.co.jp/dp/B00W952JQW/ >

・Illustrator自動化基本編
< http://www.amazon.co.jp/dp/B00R5MZ1PA >

・Adobe JavaScriptリファレンス
< http://www.amazon.co.jp/dp/B00FZEK6J6/ >

・ExtendScript Toolkit(ESTK)基本編
< http://www.amazon.co.jp/dp/B00JUBQKKY/ >

・データビジュアライゼーションのためのD3.js徹底入門
< http://www.amazon.co.jp/dp/4797368861 >

・4K/ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・クリエイター手抜きプロジェクト
< http://www.openspc2.org/projectX/ >