PostScript名で指定したフォントにTraitMaskを付与し、そのPostScript名の文字列を返すAppleScriptです。
指定フォントのBoldバージョンを取得する、という用途においてはこれで済むのですが、すでにBold指定されたフォントを渡したときにExtra Boldのフォントを返すという処理には使えません。
AppleScript名:PostScript名で指定のフォントのTraitMaskを付与する_v3.scptd |
— – Created by: Takaaki Naganoya – Created on: 2024/10/19 — – Copyright © 2024 Piyomaru Software, All Rights Reserved — use AppleScript use framework "Foundation" use framework "AppKit" use scripting additions property NSFont : a reference to current application’s NSFont property NSFontManager : a reference to current application’s NSFontManager set aName to "TimesNewRomanPSMT" set traitsNum to (current application’s NSBoldFontMask) set bName to getTraitedFontName(aName, traitsNum) of me –> "TimesNewRomanPS-BoldMT" on getTraitedFontName(aName, traitsNum) set bFont to getBoldFontObj(aName, traitsNum) of me return bFont’s fontName() as string end getTraitedFontName –BoldフォントのNSFontを取得 on getBoldFontObj(aName, traitsNum) set aFont to current application’s NSFont’s fontWithName:aName |size|:9.0 –> (NSCTFont) "HelveticaNeue 9.00 pt. P [] (0x4864eb0e0) fobj=0x12ee73e90, spc=2.50" set fontM to current application’s NSFontManager’s sharedFontManager() –指定のフォントがBoldのtraitを持っているかをチェック set fRes to fontM’s fontNamed:aName hasTraits:traitsNum if (fRes as boolean) = true then return aFont –すでに該当する set bFont to fontM’s convertFont:(aFont) toHaveTrait:(traitsNum) return bFont end getBoldFontObj –指定フォントのファミリーに属するフォント数を取得 on countFontsInItsFamily(aPSName) set aFont to current application’s NSFont’s fontWithName:(aPSName) |size|:9.0 set aFamily to aFont’s familyName() set fMan to current application’s NSFontManager’s sharedFontManager() set fList to fMan’s availableMembersOfFontFamily:aFamily return length of (fList as list) end countFontsInItsFamily |
More from my site
(Visited 1 times, 1 visits today)