日本語

/////////////////////////////////////////////////////////////////
//フォント一覧の作成_ver10.jsx
//2013/08/20 12:29 sakai masaki
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////

var mm_to_po = 2.834645669;//ミリ数値をポイントに直す
var font_size = 3 * mm_to_po ;//フォントサイズ
var ly_nm_df ="フォント一覧";//layerネームデフォルト
var info_df = "■フォント一覧 総数:";//インフォメーションデフォルト
var sample_tt = "サンプル文字";//sampleテキストデフォルト
var sample_df = "test テスト";//sampleテキストデフォルト
var split_cr = " : ";//フォント名とsampleのsplit文字
var font_color = setColor(0,0,0,100); //fontの塗り色 黒
var orikaesi = 100;//ある程度並べたら折り返し
var y_stretch = 0.9;//横並びにするときに大概離れすぎるのでそれの調整、割合
var sort_fg = 1;//並べ替えフラグ 1を設定すると並べ替える
var test_chr ="あ";//日本語検査の為のsample文字
var jap_mk = "■";//日本語フォントだった場合のマーク
var eng_mk = "□";//日本語対応じゃなかった場合のマーク
var tani = "font ";//フォントの単位
var d_sp = "-";//日付の区切り


main();
///////////////////////////////
////////////////////////////////
function main(){
var i = q = retu = cmx = 0;
var wh_mak = "";
var actDoc = activeDocument;
var n = app.textFonts.length;

var new_l = actDoc.layers.add();
var date_info = date_yymmdd(d_sp);
new_l.name = ly_nm_df + n + tani + date_info;

textObj = new_l.textFrames.add();
textObj.contents = info_df + n + tani + date_info;//+ tes_font
textObj.translate(0,font_size );
textObj.textRange.characterAttributes.size = font_size ;

txt = prompt(sample_tt,sample_df );

var font_ar = new Array() ;
for (i = 0; i < n; i++){//n
font_ar[i] = app.textFonts[i].name;
}

if(sort_fg ==1){font_ar.sort();}//並べ替えfont_ar = ar_sort


for (i in font_ar){//n

font_prp = app.textFonts.getByName(font_ar[i]);

textObj = new_l.textFrames.add();
textObj.textRange.characterAttributes.size = font_size ;
textObj.textRange.characterAttributes.fillColor = font_color ; //
textObj.textRange.characterAttributes.textFont = font_prp; // textFont

textObj.contents = test_chr;//一旦sampleテキスト配置
////日本語対応フォントかどうか調べる
g1 = textObj.characters[0].textFont.name ;
if( g1 == font_ar[i] ){ wh_mak = jap_mk ;}
else{ wh_mak = eng_mk ;}
/////
txt01 = font_ar[i] + split_cr + txt ;// font_prp + + app.textFonts[i].style + split_cr+ tes_font
textObj.contents = wh_mak + txt01;
textObj.textRange.characterAttributes.textFont = font_prp; //再設定

textObj.translate(retu,(q * font_size * (-1) ));
//tes_font = textObj.textRange.characterAttributes.font;
if(cmx < font_ar[i].length){cmx = font_ar[i].length;}
q ++;
if(q > orikaesi - 1 && orikaesi > 0 ){

dan = ((cmx + txt.length ) * font_size) * y_stretch;//
retu += dan;
cmx = q = 0;
}
}

return false;
}

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
function setColor(c,m,y,k){
var tmpColor = new CMYKColor();
tmpColor.cyan = c;
tmpColor.magenta = m;
tmpColor.yellow = y;
tmpColor.black = k;

return tmpColor;
}

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
function date_yymmdd(sc){
dd = new Date();
yy = dd.getYear();
mm = dd.getMonth() + 1;
dd = dd.getDate();
if (yy < 2000) { yy += 1900; }
if (mm < 10) { mm = "0" + mm; }
if (dd < 10) { dd = "0" + dd; }

return yy + sc +mm + sc + dd ;
}

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////