フォルダ内のEPSファイルの情報をファイルとして出力する

■プログラム説明(ソースコード説明)
 フォルダオブジェクトを作成し指定されたフォルダ内から拡張子がepsのみ抽出します。抽出したファイルの数だけfor命令を使って繰り返し処理を行います。EPSファイルをopen()で開いてファイル情報を出力します。開かれたEPSファイル/ドキュメントは閉じておきますが、自動的に保存しないようにするためclose()にSaveOptions.DONOTSAVECHANGESを指定し保存せずに閉じるように指定します。

■ソースコード
saveFolder = "/ai_result/";
folderRef = new Folder ("/ai_eps/");
fileList = folderRef.getFiles("*.eps");
for (i=0; i<fileList.length; i++)
{
fileObj = new File(fileList[i].fsName);
open(fileObj);
writeInfo(activeDocument, saveFolder+fileList[i].name+".txt");
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}

function writeInfo(docObj, filename)
{
var i;
fileRef = new File (filename);
flag = fileRef.open ("w","","");
if (flag)
{
fileRef.writeln("■作成されたアプリケーション");
fileRef.writeln(" "+name+" バージョン:"+version);
fileRef.writeln("■ページサイズ");
fileRef.writeln(" "+docObj.width+" x "+docObj.height);
fileRef.writeln("■出力解像度");
fileRef.writeln(" "+docObj.outputResolution);
fileRef.writeln("■レイヤー総数");
fileRef.writeln(" "+docObj.layers.length);
fileRef.writeln("■ビットマップ画像総数");
fileRef.writeln(" "+docObj.rasterItems.length);
fileRef.writeln("■テキストブロック総数");
fileRef.writeln(" "+docObj.textArtItems.length);
fileRef.writeln("■フォント総数(作成側システムのフォント総数)");
fileRef.writeln(" "+textFaces.length);
fontList = getFontList();
fileRef.writeln("■使用フォント総数");
fileRef.writeln(" "+fontList.length);
fileRef.writeln("■使用フォント名一覧");
for (i=0; i<fontList.length; i++) fileRef.writeln(" "+fontList[i]);
fileRef.writeln("■画像リンク一覧");
pItem = docObj.rasterItems;
for (i=0; i<pItem.length; i++) fileRef.writeln(pItem[i].file.fullName);
}
fileRef.close();
}

// 使用フォントを取得する
function getFontList()
{
var fList = new Array();
var cnt = 0,i;
var textObj = activeDocument.textArtItems;
for (i=0; i<textObj.length; i++)
{
txtRange = textObj[i].textRange();
for (j=0; j<txtRange.contents.length; j++)
{
fName = txtRange.characters[j].font;
if (!checkFont(fList,fName)) fList[cnt++] = fName;
}
}
return fList;
}

// すでにフォントが配列に登録されているか調べる
function checkFont(listObj,chk)
{
for (ii=0; ii<listObj.length; ii++)
{
if (listObj[ii] == chk) return true;
}
return false;
}


■使い方
1:情報を出力したいドキュメントをフォルダ内に用意します。
2:ファイルメニューからスクリプトを実行します。
3:ai_resultフォルダ内にファイル名.txtファイルが作成されます。


■ポイント
 情報ファイルの出力先は

fileRef = new File ("/ai_result/fileInfo.txt");

 のパスを変更します。EPSファイルのあるフォルダは

folderRef = new Folder ("/ai_eps/");

 のパスを変更します。

■実際のスクリプトをダウンロード(sample.js.zip)