2

我从网上下载了一个字体。现在我想打印该字体的字符集。我得到了那个字体的 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);
            }
        }
    }

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

4

1 回答 1

3

CFCharacterSetRef并且NSCharacterSet *是免费桥接的,所以你就快到了。将第二个代码段的第一行替换为:

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

……你就在那里。

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

于 2011-08-09T05:35:17.243 回答