2012-01-24 14 views
5

Sto disegnando un file PDF e non riesco a capire come incorporare il font nel PDF stesso, qualcuno potrebbe aiutarmi? Viene visualizzato correttamente sul dispositivo, tuttavia, una volta inviato tramite e-mail o stampato tramite AirPrint, viene visualizzato il carattere di fallback. Ecco il mio codice ...IOS incorpora font in PDF

- (void) drawChart{ 
CGContextRef currentContext = UIGraphicsGetCurrentContext(); 
CGContextSetRGBFillColor(currentContext, 0.0, 0.0, 0.0, 1.0); 


NSUserDefaults *data = [NSUserDefaults standardUserDefaults]; 
NSString *pChart1 = [data stringForKey:@"pchart1"]; 


NSString *textToDraw = [NSString stringWithFormat:@"%@",pChart1]; 

UIFont *font = [UIFont fontWithName:@"MyFont" size:14]; 

CGSize stringSize = [textToDraw sizeWithFont:font 
          constrainedToSize:CGSizeMake(pageSize.width - 2*kBorderInset-2*kMarginInset, pageSize.height - 2*kBorderInset - 2*kMarginInset) 
           lineBreakMode:UILineBreakModeWordWrap]; 

CGRect renderingRect = CGRectMake(kBorderInset + kMarginInset, kBorderInset + kMarginInset + 50.0, pageSize.width - 2*kBorderInset - 2*kMarginInset, stringSize.height); 

[textToDraw drawInRect:renderingRect 
       withFont:font 
     lineBreakMode:UILineBreakModeWordWrap 
      alignment:UITextAlignmentLeft]; 
} 

Qualsiasi aiuto sarebbe molto apprezzato!

+0

Ho cercato in alto e in basso per giorni e sono giunto alla conclusione che questo potrebbe non essere possibile, per ora Iam solo per ottenere un'immagine del display è come questo 'UIGraphicsBeginImageContext (self.myChart.bounds.size); [self.myChart.layer renderInContext: UIGraphicsGetCurrentContext()]; UIImage * image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); NSData * chartdata = UIImagePNGRepresentation (image); ' – Dan

+0

Mi piacerebbe davvero vedere una soluzione per questo - sto correndo nello stesso identico requisito. Ho aggiunto una taglia per cercare di ottenere più attenzione a questo problema. – Tom

+0

Ho un problema simile, e penso di averlo risolto, ma non lo saprò fino a quando non posso provarlo. Per sicurezza, stai usando OpenType Fonts? – Tom

risposta

5

Non ho idea del perché, ma su un'applicazione in cui sono stato coinvolto abbiamo riscontrato questo problema, una volta passati da un tipo di carattere aperto a un tipo di carattere vero, ha funzionato.

1

Come aggiornamento: prima di iOS 8, i caratteri devono essere TTF da incorporare in un pdf, ma iOS8 + supporta l'incorporamento di font OTF. Non è richiesta alcuna magia speciale.

+0

Grazie! Per caso, puoi suggerire qualche riferimento alla tua dichiarazione? (cioè documentazione Apple) – Lubbo

+0

Nessun riferimento, ma dalla sperimentazione (avevo un font OTF precedente in iOS 7, dovevo usare un convertitore online per farlo funzionare. Provato di nuovo su iOS 8, funzionava bene. Vedi http: // appstore .com/thecraic: i file PDF creati utilizzano un font OTF (Bravura). –