■プログラム説明(ソースコード説明)
出力するためのファイルオブジェクトを生成してからアクティブ(最前面の)ドキュメント情報をファイルに出力します。使用フォントは文字別に指定されている場合があるため1文字ずつ使用フォントを読み出して重複していない場合に配列に格納します。格納された配列の数だけフォント名を繰り返し出力します。
■ソースコード
fileRef = new File ("/ai_result/fileInfo.txt");
flag = fileRef.open ("w","","");
docObj = activeDocument;
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;
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フォルダ内にfileInfo.txtファイルが作成されます。
■ポイント
情報ファイルの出力先は
fileRef = new File ("/ai_result/fileInfo.txt");
のパスを変更します。
■実際のスクリプトをダウンロード(sample.js.zip)