我从互联网上下载了字体。现在我想打印该字体的字符集。我得到了该字体的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);
为了打印字母数字字符集,我将像这样使用。
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);
}
}
}
但我不知道修改此代码以打印该字体的字符集。
最佳答案
CFCharacterSetRef
和 NSCharacterSet *
是免费桥接的,所以您就快到了。将第二个代码段的第一行替换为:
NSCharacterSet *characterset = (NSCharacterSet *) CTFontCopyCharacterSet (fontRef);
...你就在那里。
请记住,NSCharacterSet 可以包含 Unicode 字符(即索引大于 256)。这可能重要也可能不重要,具体取决于您在这里尝试执行的操作。
关于objective-c - 如何打印字体的字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6991686/