Develop and Download Open Source Software

最近の更新

2008-12-30
2007-12-06
2007-11-19
2007-11-14
2007-11-13
2007-11-07
2007-11-03
2007-11-02

Wikiガイド

ExtendScript、Creative Suite特有の情報

スクリプト中でフォントを扱う際、フォント名が日本語の文字列を含んでいると、エラーが生じることが幾度となくありました。

但し、「日本語のフォント」であっても、Osakaなど、ASCII文字だけで構成されたフォント名ならば、問題はないようです。その逆に、ヒラギノフォントの類は、ポストスクリプト名で指定してもエラーが起こります。

──具体的に例を示します。

var the_font = app.fonts.item('ヒラギノ明朝 Pro');
app.documents[n].pages[n].textFrames[n].paragraphs[n].appliedFont = the_font;

といったようなコードは、ほぼ失敗に終わります。

回避策は、下のように前以て、組み込み関数のencodeURIComponentを使い、*1 URIエンコードした文字列を用意しておきます。

encodeURIComponent('ヒラギノ明朝 Pro');

結果、「ヒラギノ明朝 Pro」は「%E3%83%92%E3%83%A9%E3%82%AE%E3%83%8E%E6%98%8E%E6%9C%9D%20Pro」となります。
更にこの文字列を、同じく組み込み関数のdecodeURIComponentで元に戻して、変数に格納します。

var font_name = decodeURIComponent('%E3%83%92%E3%83%A9%E3%82%AE%E3%83%8E%E6%98%8E%E6%9C%9D%20Pro');

この変数font_nameを、前出のapp.fonts.itemプロパティに与えた場合、フォントを日本語名で指定可能です。


  1. *1過去、エンコード/デコードは、組み込み関数escape/unescapeで処理していたが、ECMAScriptでは将来的に廃止される方向なので、こちらに変更

SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.