2012-03-07 16 views
7

Estoy intentando generar una página PDF con texto que tenga símbolos personalizados (por ejemplo, "€") utilizando una fuente personalizada. Creé un contexto y una página PDF usando UIGraphicsBeginPDFContextToData y UIGraphicsBeginPDFPage. Mi código para el texto renderizado se ve algo como:iOS fuente de inserción de cuarzo en pdf

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); 

representación del símbolo-€ funciona (debido a CTFontGetGlyphsForCharacters), pero la fuente no está incrustada en el PDF. ¿Hay alguna manera de hacer esto?

+0

¿Alguna vez resolvió esto? – Tom

+0

Si usa una fuente diferente, ¿se incrusta en el PDF? ¿O es solo esta fuente particular que no se incrusta? –

+1

Terminé usando una de las fuentes del sistema 'HelveticaNeue' con la que funciona => la pregunta permanece sin respuesta. – toucan

Respuesta

4

He luchado con esto durante bastante tiempo y resultó que TTF está incorporado automágicamente mientras que OTF no lo está. Convertir mi fuente acaba de funcionar.

+1

¡Gracias, esto funcionó para mí! Esto debe ser elegido como la respuesta correcta. – lari