2012-01-24 21 views
5

Estoy dibujando un archivo PDF y no puedo encontrar la manera de incrustar la fuente en el PDF, ¿alguien podría ayudarme? Sin embargo, se muestra bien en el dispositivo, pero una vez que se envía por correo electrónico o se imprime a través de AirPrint, obtengo la fuente alternativa. Aquí está mi código ...IOS incrusta fuente en 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]; 
} 

¡Cualquier ayuda sería muy apreciada!

+0

He buscado hi y low por días y he llegado a la conclusión de que esto puede no ser posible, así que por ahora acabo de obtener una imagen de lo que se muestra como esta 'UIGraphicsBeginImageContext (self.myChart.bounds.size); [self.myChart.layer renderInContext: UIGraphicsGetCurrentContext()]; UIImage * image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); NSData * chartdata = UIImagePNGRpresentation (image); ' – Dan

+0

También me gustaría ver una solución para esto: me estoy encontrando exactamente con el mismo requisito. He añadido una recompensa para tratar de llamar más la atención sobre este problema. – Tom

+0

Tengo un problema similar, y creo que lo he resuelto, pero no lo sabré hasta que lo pueda probar. Solo para asegurarte, ¿estás usando fuentes OpenType? – Tom

Respuesta

5

No tengo idea de por qué, pero en una aplicación en la que participé tuvimos este problema, una vez que pasamos de usar una fuente tipográfica abierta a una tipográfica verdadera, simplemente funcionó.

1

Como una actualización: antes de iOS 8, las fuentes deben ser TTF para ser incrustadas en un pdf, pero iOS8 + admite la incrustación de fuentes OTF. No se requiere magia especial.

+0

¡Gracias! Por casualidad, ¿puede sugerir alguna referencia a su declaración? (es decir, documentación de Apple) – Lubbo

+0

Sin referencia, pero a partir de la experimentación (tenía una fuente OTF anterior en iOS 7, tuve que usar un convertidor en línea para hacerlo funcionar. Intenté nuevamente en iOS 8, funcionó bien. Consulte http: // appstore .com/thecraic: los archivos PDF que crea utilizan una fuente OTF (Bravura). –

Cuestiones relacionadas