【问题标题】:How to Print the characterset of a Font?如何打印字体的字符集?
【发布时间】:2011-08-09 13:35:17
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c macos nscharacterset


    【解决方案1】:

    CFCharacterSetRefNSCharacterSet * 是免费桥接的,所以您就快到了。将第二个 sn-p 的第一行替换为:

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

    ……你就在那里。

    请记住,NSCharacterSet 可以包含 Unicode 字符(即,索引大于 256)。根据您在此处尝试执行的操作,这可能重要也可能不重要。

    【讨论】:

    • 谢谢您的回答...如果我使用希腊字体意味着我如何才能仅在控制台中获取希腊字母?
    猜你喜欢
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 2011-10-04
    • 2023-03-30
    相关资源
    最近更新 更多