2012-03-07 36 views
7

Tôi đang cố gắng tạo trang PDF có văn bản có ký hiệu tùy chỉnh (ví dụ: "€") bằng phông chữ tùy chỉnh. Tôi đã tạo ra một bối cảnh và trang PDF bằng cách sử dụng UIGraphicsBeginPDFContextToData và UIGraphicsBeginPDFPage. Mã của tôi để hiển thị văn bản trông giống như sau:Phông chữ nhúng iOS Quartz trong 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); 

Hiển thị công cụ € -symbol (vì CTFontGetGlyphsForCharacters), nhưng phông chữ không được nhúng trong pdf. Có cách nào để làm điều này không?

+0

Bạn đã bao giờ giải quyết vấn đề này chưa? – Tom

+0

Nếu bạn sử dụng phông chữ khác - nó có được nhúng trong tệp PDF không? Hay chỉ là phông chữ đặc biệt này mà không được nhúng? –

+1

Tôi đã sử dụng trên hệ thống phông chữ 'HelveticaNeue' với phù thủy nó hoạt động => câu hỏi vẫn chưa được trả lời. – toucan

Trả lời

4

Tôi đã chiến đấu với điều này trong một thời gian khá lâu và hóa ra TTF được gắn tự động trong khi OTF thì không. Chuyển đổi phông chữ của tôi chỉ hoạt động.

+1

Cảm ơn, điều này đã làm việc cho tôi! Điều này nên được chọn làm câu trả lời đúng. – lari

Các vấn đề liên quan