function getAllFontsByDialogHelper() { var fontslist = ''; try { for (var i = 1; i < dlgHelper.fonts.count; i++) { fontslist += dlgHelper.fonts(i) + '\n'; } } catch(e) { fontslist = 'sorry, could not get fonts list.'; } return fontslist; }
非常にシンプルですが、動作するブラウザが Internet Explorer に激しく限定されてしまうのが難点です。
IE も使ってないし、Flash Player もインストールされていないブラウザで、フォント名一覧を取得したい場合はどうすればいいの?
ということで、LiveConnect を使う方法を実験してみました。
試してみたJavaScriptのコードは以下の通りです。
function getAllFontsByLiveConnect() { var fontslist = ''; try { var fonts = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts(); for (var i = 0; i < fonts.length; i++) { fontslist += fonts[i].getFontName() + '\n'; } } catch(e) { fontslist = 'sorry, could not get fonts list.'; } return fontslist; }
LiveConnect は Javaアプレットの動作が有効になっている Netscape3以降, Firefox, Opera のブラウザで動作します。