2012-03-07 14 views
7

Sto tentando di generare una pagina PDF con testo con simboli personalizzati (ad esempio "€") utilizzando un carattere personalizzato. Ho creato un contesto e una pagina PDF utilizzando UIGraphicsBeginPDFContextToData e UIGraphicsBeginPDFPage. Il mio codice per il testo rendering di simile a:Carattere quarzo iOS incorporato in 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); 

rendering del € -simbolo funziona (a causa di CTFontGetGlyphsForCharacters), ma il tipo di carattere non è incorporato nel PDF. C'è un modo per fare questo?

+0

Hai mai risolto questo? – Tom

+0

Se si utilizza un font diverso, viene incorporato nel PDF? O è solo questo particolare tipo di carattere che non viene incorporato? –

+1

Ho finito per utilizzare i caratteri di sistema 'HelveticaNeue' con il quale funziona => la domanda rimane senza risposta. – toucan

risposta

4

Ho combattuto con questo per un po 'di tempo e si è scoperto che TTF è incorporato automaticamente mentre OTF non lo è. La conversione del mio font ha funzionato.

+1

Grazie, ha funzionato per me! Questo dovrebbe essere scelto come risposta corretta. – lari