2012-03-07 101 views
7

我正尝试使用自定义字体生成包含自定义符号(例如“€”)的文本的PDF页面。我已经使用UIGraphicsBeginPDFContextToData和UIGraphicsBeginPDFPage创建了PDF上下文和页面。我的渲染文本代码看起来是这样的:iOS中的石英嵌入字体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); 

渲染-symbol工作(因为CTFontGetGlyphsForCharacters的)的€,但字体未嵌入到PDF。有没有办法做到这一点?

+0

你有没有解决这个问题? – Tom 2012-07-06 16:45:48

+0

如果您使用不同的字体 - 是否嵌入在PDF中?还是只有这个特定的字体没有嵌入? – 2012-07-07 13:25:46

+1

我结束了使用系统字体'HelveticaNeue'与它的工作=>问题仍然没有答案。 – toucan 2012-07-09 20:50:35

回答

4

我已经争取了很长一段时间,事实证明TTF是自动嵌入的,而OTF不是。转换我的字体刚刚工作。

+1

谢谢,这对我有用!这应该被选为正确的答案。 – lari 2014-03-18 14:35:34