数十ファイルもののillustratorCS5で作成されたファイルを
CS3バージョンに保存し直して欲しいと依頼が。
数が半端じゃないので、スクリプトにチャレンジ。
素人工事なので、間違いとか、無駄な処理があるよとか、
あればアドバイスお願いします!
作ること2時間。
なんとか、動いてくれたけど、いちいち、ファイルを開くのは、
時間がかかる・・・。開かずに処理できる方法はないのかな。
参考
下記サイトのスクリプトを参考にさせていただきました!
ありがとうございます。
イラレCS2からCSへのファイル形式のバージョン変更
http://okwave.jp/qa/q2890296.html
日刊デジタルクリエイターズ
■クリエイター手抜きプロジェクト[253]Illustrator CS/CS2/CS3/CS4/CS5編
サブフォルダ内にある全てのAIファイルを開く/古籏一浩
http://blog.dgcr.com/mt/dgcr/archives/i/20101004140200.html
Script(JavaScript)
フォルダを選択して、そのフォルダ以下のサブフォルダを含めた、
.aiファイルを全て、指定したバージョンで保存しなおします。
バージョン等の指定は、スクリプトの最下部の方で設定。
folderRef = Folder.selectDialog("フォルダを選択してください");
fList = getAllFile(folderRef, [".ai"]); // 拡張子は小文字で
//ファイル一覧の表示
//alert(fList);
var n=0;
try{
for(var i=0; i<fList.length; i++){
//上位バージョンを下位バージョンで開くとダイアログが出るのを防ぐ
app.userInteractionLevel=UserInteractionLevel.DONTDISPLAYALERTS;
app.open(fList[i]);
app.userInteractionLevel=UserInteractionLevel.DISPLAYALERTS;
saveascs(activeDocument);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
n++;
}
}
catch(someError){
alert( "JavaScript error occurred. Message = " +
someError.description)
}
// サブフォルダも含めたファイル一覧を取得する関数
function getAllFile(folderObj, ext)
{
if (!folderObj) return; // キャンセルされたら処理しない
var list = [];
getFolder(folderObj);
return list;
// フォルダ内の一覧を取得
function getFolder(folderObj)
{
var fileList = folderObj.getFiles();
for (var i=0; i<fileList.length; i++)
{
if (fileList[i].getFiles)
{
getFolder(fileList[i]); // サブフォルダがある限り繰り返す
}
else
{
var f = fileList[i].name.toLowerCase();
for(var j=0; j<ext.length; j++)
{
if (f.indexOf(ext[j]) > -1) { list.push(fileList[i]); }
}
}
}
}
}
function saveascs(docObj)
{
var saveOptions = new IllustratorSaveOptions;
var currentname = new Array();
var currentname = docObj.name.split(".");
//書き出しファイル名。同じファイル名があると上書きされます。
var changedname = "" + currentname[0].toString() + "" + ".ai";
var documentPath = docObj.path + "/" + changedname;
var fileSpec = new File(documentPath);
//バージョン CS=11/CS2=12/CS3=13/CS4=14
saveOptions.compatibility = Compatibility.ILLUSTRATOR13;
saveOptions.flattenOutput = OutputFlattening.PRESERVEAPPEARANCE;
saveOptions.fontSubsetThreshold = 0;
//PDF互換ファイルを作成
saveOptions.pdfCompatibility = true;
//配置した画像を含む
saveOptions.embedLinkedFiles = false;
//ICCプロファイルを埋め込む
saveOptions.embedICCProfile = true;
saveOptions.embedAllFonts = false;
//圧縮を使用
saveOptions.compressed = true;
docObj.saveAs(fileSpec, saveOptions);
}
※スクリプトは「.jsx」、文字コード「UTF-8」で保存して、
illustrator > ファイル > スクリプト > その他のスクリプト... から使います。
自己責任でおねがいします!
にほんブログ村 3DCG
[click!]

Real clean site, thankyou for this post.