LoginSignup
1
1

More than 3 years have passed since last update.

[Illustrator Script] フォント指定時の値を app.textFonts.getByName("fontName") とする理由

Posted at

完成コード

例えば小塚ゴシックを指定する場合以下のように書く。

sel = activeDocument.selection
sel[0].textRange.characterAttributes.textFont = app.textFonts.getByName("KozGoPro-Regular")

何が理解できなかったのか

上記コードでフォントは指定できるが、例えば以下コードのように文字列で指定するとエラーが出る。

sel = activeDocument.selection
sel[0].textRange.characterAttributes.textFont = "KozGoPro-Regular"

そもそもtextFontプロパティの値は文字列ではなくfontオブジェクトを指定すべである。
しかしなぜこのようなコードを書いてしまったかと言うと以下コードのように書くことで、フォント名を取得することが出来る。

sel = activeDocument.selection
alert(sel[0].textRange.characterAttributes.textFont)

「小塚ゴシック」のテキストオブジェクトを選択して上記コードを実行すると、ダイアログに「textFont KozGoPro-Regular」と表示される。
短絡的に「じゃあtextFontの値に"KozGoPro-Regular"を文字列で指定すればいんじゃね?」と指定してしまった訳である。

結論

textFontプロパティの値はFontオブジェクトでなければならない。
FontオブジェクトはtextFontクラスのgetByName()メソッドで取得出来る。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1