Avant OSX 10.6, ATSFontActivateFromFileSpecification/ATSFontActivateFromFileReference étaient disponibles et pouvaient être utilisés pour charger une police à partir d'un fichier. Je ne trouve rien de semblable dans Core Text.Comment charger une police (TTF) à partir d'un fichier utilisant Core Text?
13
A
Répondre
10
Il semble que CTFontManagerCreateFontDescriptorsFromURL
est le remplacement du texte de base.
18
Vous pouvez obtenir un CTFontRef
à partir d'un fichier de police en passant par un CGFontRef
:
CFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR("/path/to/font"), kCFURLPOSIXPathStyle, false);
CGDataProviderRef dataProvider = CGDataProviderCreateWithURL(url);
CGFontRef theCGFont = CGFontCreateWithDataProvider(dataProvider);
CTFontRef theCTFont = CTFontCreateWithGraphicsFont(theCGFont);
CFRelease(theCGFont);
CFRelease(dataProvider);
CFRelease(url);
// do something with the CTFontRef here
CFRelease(theCTFont);
4
NSURL *fontURL = [[NSBundle mainBundle] URLForResource:@"Crystal" withExtension:@"ttf"];
assert(fontURL);
CFErrorRef error = NULL;
if (!CTFontManagerRegisterFontsForURL((__bridge CFURLRef)fontURL, kCTFontManagerScopeProcess, &error))
{
CFShow(error);
abort();
}
+1
cela a fonctionné pour moi, merci! – MiMo
Et il fait pour [code plus court que la route de base Graphics] (https: //gist.github. com/1696100). –