今回は文字のサイズ変更についてです。まず、選択されたテキストブロックの全ての文字のサイズを表示するサンプルです。
sel = activeDocument.selection;
selObj = sel[0];
for (i=0; i<selObj.textSelection[0].characters.length; i++)
{
fSize = selObj.textSelection[0].characters[i].size;
alert(fSize+" pt");
}
Illustrator CSでは文字や図形のサイズにcmやmm、パイカやポイントなど複数の単位を指定することができます。しかし、スクリプト上では単位は必ずポイントになるので注意が必要です。ちなみに、Illustrator CSの文字サイズや図形のサイズなどを指定する部分では12+3.5ptのように入力すると自動的に計算してくれます(12+3+6など複数項目の計算は駄目)。
テキストブロック内で数字だけ若干文字サイズを大きくしたい場合には以下のようなスクリプトになります。このスクリプトは選択されたテキストブロックの数字のみサイズを+5ポイント大きくします。サイズは
selObj.textSelection[0].characters[i].size = fSize+5;
の+5を変更してください。-2とすると2ポイント小さくなります。もし、数字を9ptにしたいのであれば
selObj.textSelection[0].characters[i].size = 9;
としてください。書体によって文字のバランスをとりたい場合や、漢字と平仮名のサイズを見栄え良くしたい場合には有効でしょう。
repStr = "0123456789";
sel = activeDocument.selection;
for (j=0; j<sel.length; j++)
{
selObj = sel[j];
for (i=0; i<selObj.textSelection[0].characters.length; i++)
{
c = selObj.textSelection[0].characters[i].contents;
if (repStr.indexOf(c) > -1)
{
fSize = selObj.textSelection[0].characters[i].size;
selObj.textSelection[0].characters[i].size = fSize+5;
}
}
}
文字はサイズ以外に比率を変更することができます。文字を横方向に縮めるにはhorizontalScaleに比率を設定します。縦方向に縮めるにはverticalScaleに比率を設定します。設定できる値は100が100%、50では50%になります。以下のスクリプトは選択されたテキストブロック内の半角数値を水平方向50%に縮めるものです。
repStr = "0123456789";
sel = activeDocument.selection;
for (j=0; j<sel.length; j++)
{
selObj = sel[j];
for (i=0; i<selObj.textSelection[0].characters.length; i++)
{
c = selObj.textSelection[0].characters[i].contents;
if (repStr.indexOf(c) > -1)
{
selObj.textSelection[0].characters[i].horizontalScale = 50;
}
}
}
最後に手作業でやると面倒な文字サイズを少しずつ大きくするスクリプトを載せておきます。先頭の行の6が最初の文字サイズです。2行目の0.5が、どのくらい大きくしていくかを示しています。最初の文字サイズを大きくしておいて、d=-1のように負数を指定すると文字を小さくしていくことができます。
fSize = 6;
d = 0.5;
sel = activeDocument.selection;
for (j=0; j<sel.length; j++)
{
selObj = sel[j];
for (i=0; i<selObj.textSelection[0].characters.length; i++)
{
selObj.textSelection[0].characters[i].size = fSize;
fSize += d;
}
}