如何打印字体的字符集?

时间:2011-08-09 05:20:38

标签: objective-c macos nscharacterset

我从互联网上下载了一种字体。现在我要打印该字体的Characterset。我得到了该字体的CFCharacterSetRef。但我不知道如何打印CFCharacterSetRef。这是我的编码。

 NSString *fontFilePath=@"/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);
            }
        }
    }

但我不知道修改此代码以打印该字体的字符集。

1 个答案:

答案 0 :(得分:3)

CFCharacterSetRefNSCharacterSet *是免费的桥接,所以你几乎就在那里。将第二个代码段的第一行替换为:

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

......你在那儿。

请记住,NSCharacterSet可以包含Unicode字符(即索引大于256)。根据你在这里要做的事情,这可能也可能不重要。