Question

Y at-il un moyen de déterminer si oui ou non une police peut rendre un caractère Unicode particulier à Cocoa? Sinon, est-il possible de spécifier le caractère de remplacement par défaut?

Était-ce utile?

La solution

Vous pouvez utiliser CGFontGetGlyphWithGlyphName () pour iOS anciennes versions d'iOS (2.0). Apple ne semble pas documenter les noms de glyphe, mais je crois qu'ils correspondent à cette liste Adobe:

http://partners.adobe.com/public/developer/ fr / opentype / glyphlist.txt

Par exemple, le glyphe é (U + 00E9) est nommé "eacute" et le code pour obtenir le glyphe serait:

CFStringRef name = CFStringCreateWithCString(NULL, "eacute", kCFStringEncodingUTF8);
CGGlyph glyph = CGFontGetGlyphWithGlyphName(font, name);

Autres conseils

Vérifiez CTFontGetGlyphsForCharacters dans le cadre du texte de base. Si elle retourne zéro pour l'indice de glyphe d'un caractère Unicode donné, ce caractère est pas pris en charge dans cette police. La fonction retourne false sinon se trouve l'un des Glyphes.

Comme il est sur iOS, vous devrez peut-être de construire ou de trouver une application qui fait cela. En fin de compte, si l'info est présente pour tout glyphe est dans les tables dans le fichier de police lui-même et qui est assez faible travail C.

Beaucoup plus facile de construire un outil qui inspecte la police et montre le glyphe et l'indice glyphe (valeur CGGlyph ou NSGlyph) puis utilisez l'index de glyphe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top