2012-03-07 11 views
7

में आईओएस क्वार्ट्ज एम्बेड फ़ॉन्ट मैं टेक्स्ट के साथ एक पीडीएफ पेज जेनरेट करने की कोशिश कर रहा हूं जिसमें एक कस्टम फ़ॉन्ट का उपयोग कर कस्टम प्रतीकों (जैसे "€") हैं। मैंने UIGraphicsBeginPDFContextToData और UIGraphicsBeginPDFPage का उपयोग करके एक पीडीएफ संदर्भ और पृष्ठ बनाया है। प्रतिपादन पाठ के लिए मेरे कोड तरह दिखता है: € -symbol (CTFontGetGlyphsForCharacters की वजह से) काम करता है प्रतिपादनपीडीएफ

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

, लेकिन फ़ॉन्ट पीडीएफ में एम्बेडेड नहीं है। क्या इसे करने का कोई तरीका है?

+0

क्या आपने कभी इसे हल किया है? – Tom

+0

यदि आप एक अलग फ़ॉन्ट का उपयोग करते हैं - क्या यह पीडीएफ में एम्बेडेड हो जाता है? या यह केवल यह विशेष फ़ॉन्ट है जो एम्बेडेड नहीं होता है? –

+1

मैं चुड़ैल के साथ सिस्टम फोंट 'हेल्वेतिकाएयू' के उपयोग से समाप्त हुआ => प्रश्न अनुत्तरित रहता है। – toucan

उत्तर

4

मैंने थोड़ी देर के लिए इसके साथ लड़ा है और यह पता चला है कि टीटीएफ स्वचालित रूप से एम्बेडेड है जबकि ओटीएफ नहीं है। मेरे फ़ॉन्ट को कनवर्ट करना अभी काम किया है।

+1

धन्यवाद, यह मेरे लिए काम किया! इसे सही उत्तर के रूप में चुना जाना चाहिए। – lari