2011-08-09 74 views
2

我已經從網上下載了一種字體。現在我想打印該字體的字符集。我得到了該字體的CFCharacterSetRef。但我不知道如何打印該CFCharacterSetRef。這是我的編碼。如何打印字體的字符集?

NSString *[email protected]"/Volumes/Work/Mac/Fonts/FONT FOLDER/AngelicWar"; 
CFStringRef aCFString = (CFStringRef)fontFilePath; 
CTFontRef fontRef = CTFontCreateWithName(aCFString, 0.0,NULL);   
CFCharacterSetRef charRef=CTFontCopyCharacterSet (fontRef); 

對於打印alphanumericCharacterSet我會像這樣使用。

NSCharacterSet *characterset = [NSCharacterSet alphanumericCharacterSet]; 
    unichar idx; 
    for(idx = 0; idx < 256; idx++) 
    { 
     if ([characterset characterIsMember: idx]) 
     { 
      if (isprint(idx)) { 
       NSLog(@"%c",idx); 
      } 
      else { 
       printf("%02x ", idx); 
      } 
     } 
    } 

但我不知道要修改此代碼來打印該字體的字符集。

回答

3

CFCharacterSetRefNSCharacterSet *免費橋接,所以你快到了。將第二個片段的第一行替換爲:

NSCharacterSet *characterset = (NSCharacterSet *) CTFontCopyCharacterSet (fontRef); 

...並且您在那裏。

請記住,NSCharacterSet可以包含Unicode字符(即索引大於256)。根據你在這裏試圖做什麼,這可能或可能不重要。

+0

謝謝您的答案先生...如果我使用了希臘字體意味着我怎麼才能在控制檯中獲得希臘字母? – Aravindhan