Prima di OSX 10.6, ATSFontActivateFromFileSpecification/ATSFontActivateFromFileReference erano disponibili e potevano essere utilizzati per caricare un font da un file. Non riesco a trovare nulla di simile in Core Text.Come si può caricare un font (TTF) da un file usando Core Text?
13
A
risposta
10
Sembra che CTFontManagerCreateFontDescriptorsFromURL
sostituisca il testo principale.
18
È possibile ottenere un CTFontRef
da un file di font da passare attraverso 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
questo ha funzionato per me, grazie! – MiMo
E lo fa per [il codice più corto del percorso core grafico] (https: //gist.github. com/1.696.100). –