実行すると、開いているaepファイルと同じフォルダに、使用フォント一覧テキストファイルを出力します。
[解説]
var fileObj = new File(decodeURI(app.project.file.parent)+"/dev["+decodeURI(app.project.file.name)+"]使用フォント一覧.txt");
fileObj.encoding = "UTF-8";
var flag = fileObj.open("w");
var compName="";
if (flag == true){//ファイルが開けなければ終了
// プログレス準備
var greWin = new Window('window','実行中',[500,500,800,580]);
var st=greWin.add('statictext',[20,10,130,30],"全体の進行状況");
greWin.Dilog = greWin.add("progressbar",[20,30,280,40],0,100);
greWin.center();
greWin.show();
var allFontsAr = [];
var tx=
"["+decodeURI(app.project.file.name)+"]\r"+
"aep使用フォント名一覧\r\r";
tx+=
"*---------------------------------\r"+
"*[コンポジション名]\r"+
"*---------------------------------\r"+
"* (レイヤー番号):[テキストレイヤー名]\r"+
"* : フォント名\r\r";
//プロジェクトウィンドウ全検索
for (i=1; i<=app.project.items.length; i++){
var itm = app.project.item(i);
if(itm instanceof CompItem){// - [compなら]中身も全検索
for(var j=1;j<=itm.numLayers;j++){//コンポジション内全検索
var lyr = itm.layer(j);//ファイル置換はitm.nameに、テキスト変換はlyr.nameに適用
var isTxt=lyr.property("Source Text");
if(isTxt!=null){
if (compName!=itm.name){
compName=itm.name;
tx+="\r---------------------------------\r";
tx+="["+compName+"]コンポ\r";
}
tx+="\r"+" #" + lyr.index + " [" + lyr.name+"]レイヤー\r";
tx+=" " + " : " + isTxt.value.font+"\r";
allFontsAr.push(isTxt.value.font);
}
}
}
}
f_arrayUnique(allFontsAr);//重複削除
allFontsAr.sort(//番号順にソート
function(a,b){
if(a<b)return -1;
if(a>b)return 1;
return 0;
}
);
tx+="\r\r全フォント一覧\r"+allFontsAr.join("\r");
fileObj.write(tx);
greWin.close();
fileObj.close();
alert("aep使用フォント名一覧 - 書き出し完了");
}else{
alert("ファイル保存取り消し");
}
//配列重複削除
function f_arrayUnique(ary){
var i, j, len;
i = 0;
len = ary.length;
while(i < len){
j = i + 1;
while(j < len){
if(ary[j] === ary[i]){
ary.splice(j, 2);
len--;
}else{
j++;
}
}
i++;
}
}
出力されるファイル例
[sample.aep] aep使用フォント名一覧 *--------------------------------- *[コンポジション名] *--------------------------------- (レイヤー番号):[テキストレイヤー名] : フォント名 [コンポ1]コンポ#1 [テキストレイヤー 2]レイヤー : 03SmartFontUI
#2 [テキストレイヤー]レイヤー : 03SmartFontUI
[コンポ2]コンポ#2 [テキストレイヤー 3]レイヤー : 03SmartFontUI
#3 [テキストレイヤー 2]レイヤー : 03SmartFontUI
#8 [テキストレイヤー]レイヤー : 03SmartFontUI
全フォント一覧 03SmartFontUI
このようにコンポジションの構造もわかるように残していきます。
コンポジション名、レイヤー番号、テキストレイヤー名、フォント名と個別表示に加え、最後に全フォント一覧を列挙します。
使用しているフォントをフォルダに集める際に活躍します。
この記事へのコメントはありません。