Как напечатать набор символов шрифта? - PullRequest
2 голосов
/ 09 августа 2011

Я скачал шрифт из интернета. Теперь я хочу напечатать кодировку этого шрифта. Я получил 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);
            }
        }
    }

Но я не знаю, как изменить этот код для печати набора символов этого шрифта.

1 Ответ

3 голосов
/ 09 августа 2011

CFCharacterSetRef и NSCharacterSet * являются бесплатными мостами, так что вы почти у цели.Замените первую строку вашего второго фрагмента на:

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

… и вы там.

Имейте в виду, что NSCharacterSet может содержать символы Юникода (т. Е. С индексами выше 256).В зависимости от того, что вы пытаетесь сделать здесь, это может иметь или не иметь значения.

...