Archive for the 'NSFontManager' Category

2015/08/28 ASOCでNSFont,NSFontManagerのじっけん

AppleScriptでNSFontやNSFontManagerを操作して情報を取得する実験です。

このあたり、Cocoaを呼べるからものすごい処理ができるぞ(TTSの音声検索なんかはわりとすごい)、とかいうことはなくて・・・普通にPure AppleScriptでFontBook.appを操作する方が有意義な感じがします。

Photoshop書類のテキストレイヤーからフォント情報を取り出してまとめて出力するAppleScriptを組んだときには、FontBookを用いてフォント情報の付け合わせを行いましたが・・・ここであえてNSFontやNSFontManagerを呼び出してみたところで、イレギュラーなフォントについてはまともに名前などの情報を返してこないケースもありますし、Photoshopのテキストレイヤー上に複数のフォントを指定してしまうとScript側からは正しく取得できないので困ります。

AppleScript名:ASOCでNSFontのじっけん
– Created 2015-08-27 by Takaaki Naganoya
– 2015 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use framework “AppKit”

set aFont to current application’s NSFont’s fontWithName:“HiraKakuStd-W8″ |size|:16
–>  (NSFont) “HiraKakuStd-W8 16.00 pt. P [] (0×600001457340) fobj=0×6180001f2800, spc=5.33″

aFont’s displayName()
–>  (NSString) “ヒラギノ角ゴ Std W8″

aFont’s familyName()
–>  (NSString) “Hiragino Kaku Gothic Std”

aFont’s fontName()
–>  (NSString) “HiraKakuStd-W8″

aFont’s coveredCharacterSet()
–>  (__NSCFCharacterSet) <__nscfcharacterset : 0x6000004472c0>

aFont’s fontDescriptor()
(*)
–>  (NSCTFontDescriptor) NSCTFontDescriptor <0×61800009cb60> = {
NSFontNameAttribute = “HiraKakuStd-W8″;
NSFontSizeAttribute = 16;
}
*)

aFont’s mostCompatibleStringEncoding()
–>  2.147483649E+9 –???

aFont’s renderingMode()
–>  1
(*
typedef enum NSFontRenderingMode : NSUInteger {
NSFontDefaultRenderingMode = 0,
NSFontAntialiasedRenderingMode = 1,
NSFontIntegerAdvancementsRenderingMode = 2,
NSFontAntialiasedIntegerAdvancementsRenderingMode = 3
} NSFontRenderingMode;
*)

aFont’s printerFont()
–>  (NSFont) “HiraKakuStd-W8 16.00 pt. P [] (0×600001457340) fobj=0×6180001f2800, spc=5.33″

aFont’s screenFont()
–>  (NSFont) “HiraKakuStd-W8 16.00 pt. S [] (0×600001457340) fobj=0×6180001f2800, spc=5.00″

aFont’s numberOfGlyphs()
–>  9354

★Click Here to Open This Script 

AppleScript名:ASOCでNSFontManagerのじっけん
– Created 2015-08-27 by Takaaki Naganoya
– 2015 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use framework “AppKit”

set aFontMan to current application’s NSFontManager’s sharedFontManager()’s availableFontFamilies()
–>  (NSArray) {​​​​​”01FLOPDESIGN”, ​​​​​”A-OTF Shin Go Pr6N”, ​​​​​”A-OTF Shin Go Pro”, ​​​​​”Abadi MT Condensed Extra Bold”, ​​​​​”Abadi MT Condensed Light”, ​​​​​”AGENDAJinmeiGyoshotaiL1″, ​​​​​”AGENDAJinmeiSeikaishotaiL1″, ​​​​​”Akubin”,….}

set aFontMan to current application’s NSFontManager’s sharedFontManager()’s availableMembersOfFontFamily:“MS Mincho”
–>  (NSArray) {​​​​​{​​​​​​​”MS-Mincho”, ​​​​​​​”Regular”, ​​​​​​​1, ​​​​​​​0​​​​​}​​​}

set aFontMan to current application’s NSFontManager’s sharedFontManager()’s availableMembersOfFontFamily:“Times”
–>  (NSArray) {​​​​​{​​​​​​​”Times-Roman”, ​​​​​​​”Regular”, ​​​​​​​1, ​​​​​​​0​​​​​}, ​​​​​{​​​​​​​”Times-Italic”, ​​​​​​​”Italic”, ​​​​​​​1, ​​​​​​​1​​​​​}, ​​​​​{​​​​​​​”Times-Bold”, ​​​​​​​”Bold”, ​​​​​​​1, ​​​​​​​2​​​​​}, ​​​​​{​​​​​​​”Times-BoldItalic”, ​​​​​​​”Bold Italic”, ​​​​​​​1, ​​​​​​​3​​​​​}​​​}

set aFontMan to current application’s NSFontManager’s sharedFontManager()’s localizedNameForFamily:“Osaka” face:“Regular-Mono”
–>  (NSString) “レギュラー−等幅”

★Click Here to Open This Script