шрифт для iOS Quartz в формате PDF - PullRequest
7 голосов
/ 07 марта 2012

Я пытаюсь создать страницу PDF с текстом, содержащим пользовательские символы (например, «€»), используя собственный шрифт.Я создал PDF-контекст и страницу, используя UIGraphicsBeginPDFContextToData и UIGraphicsBeginPDFPage.Мой код для рендеринга текста выглядит примерно так:

NSString *fontFile = [[NSBundle mainBundle] pathForResource:@"somefont.otf" ofType:nil];
CGDataProviderRef dataProvider = CGDataProviderCreateWithFilename([fontFile cStringUsingEncoding:NSASCIIStringEncoding]);
CGFontRef cgfont = CGFontCreateWithDataProvider(dataProvider);
CTFontRef ctfont = CTFontCreateWithGraphicsFont(cgfont, 10, NULL, NULL);
CFRelease(dataProvider);        

NSString *text = @"Hello €";
int len = [text length];
CGGlyph glyphs[len];
CTFontGetGlyphsForCharacters(ctfont, (const unichar*)[text cStringUsingEncoding:NSUnicodeStringEncoding], glyphs, len);
CGContextSetTextDrawingMode(_context, kCGTextFill);
CGContextShowGlyphsAtPoint(_context, 10, 10, glyphs, len);
CFRelease(cgfont);
CFRelease(ctfont);

Визуализация € -символа работает (из-за CTFontGetGlyphsForCharacters), но шрифт не встроен в PDFЕсть ли способ сделать это?

1 Ответ

4 голосов
/ 30 декабря 2013

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

...