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 *いるので、もうすぐそこにいます。2番目のスニペットの最初の行を次のように置き換えます。

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

…そしてあなたはそこにいます。

NSCharacterSetにはUnicode文字を含めることができることに注意してください(つまり、256を超えるインデックスを使用)。ここで何をしようとしているかによって、これは問題になる場合と問題にならない場合があります。

于 2011-08-09T05:35:17.243 に答える