Как вы можете загрузить шрифт (TTF) из файла с помощью Core Text?
До OSX 10.6 были доступны ATSFontActivateFromFileSpecification/ATSFontActivateFromFileReference и могут быть использованы для загрузки шрифта из файла. Я не могу найти ничего подобного в Core Text.
Ответы
Ответ 1
Вы можете получить CTFontRef
из файла шрифта, перейдя через 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);
Ответ 2
Похоже, что CTFontManagerCreateFontDescriptorsFromURL
- это замена основного текста.
Ответ 3
NSURL *fontURL = [[NSBundle mainBundle] URLForResource:@"Crystal" withExtension:@"ttf"];
assert(fontURL);
CFErrorRef error = NULL;
if (!CTFontManagerRegisterFontsForURL((__bridge CFURLRef)fontURL, kCTFontManagerScopeProcess, &error))
{
CFShow(error);
abort();
}