2012-03-07 61 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