2010-03-15 16 views
8

Estoy intentando guardar un UIImage en un archivo PDF. ¿Cómo puedo hacer esto? ¿Cómo puedo guardar e imagen en un archivo pdf y luego exportar ese archivo pdf? Por favor sugiera la solución para el problema que enfrenté.Conversión de UIImage en archivo PDF

Gracias.

+0

¿Por qué? Si bien es posible, PDF está optimizado para almacenar documentos y gráficos vectoriales, y UIImage es un mapa de bits ... – kennytm

Respuesta

3

Según tengo entendido, crearía un CGPDFContext, dibujaría su UIImage en él y lo guardaría en un archivo. Aunque no lo hice yo mismo.

15

Hola, he encontrado que esto funciona, Espero que ayude!

-(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename 
    { 
     // Creates a mutable data object for updating with binary data, like a byte array 
     NSMutableData *pdfData = [NSMutableData data]; 

     // Points the pdf converter to the mutable data object and to the UIView to be converted 
     UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil); 
     UIGraphicsBeginPDFPage(); 

     // draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData 
     [aView.layer renderInContext:UIGraphicsGetCurrentContext()]; 

     // remove PDF rendering context 
     UIGraphicsEndPDFContext(); 

     // Retrieves the document directories from the iOS device 
     NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES); 

     NSString* documentDirectory = [documentDirectories objectAtIndex:0]; 
     NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename]; 

     // instructs the mutable data object to write its context to a file on disk 
     [pdfData writeToFile:documentDirectoryFilename atomically:YES]; 
     NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename); 
    } 
+0

Parece un buen concepto, ¿pero dibuja un archivo PDF en blanco? ¿Qué se necesita en DrawRect "aView"? – WrightsCS

+1

perfectamente está funcionando .... Than q sooooooooo streeter amduser440071 –

0

También tengo un pdf en blanco. Lo tengo trabajando ahora sin embargo. Prueba a cambiar:

//[aView drawRect:aView.bounds]; // <- This 

[aView.layer renderInContext:UIGraphicsGetCurrentContext()]; // <- To This 
-1

Puede iniciar un contexto pdf gráficos, y luego dibujar una imagen en él, usando:

[UIImage drawInRect: someRect]; 

Puede ver la documentación, que dar una buena explicación de la generación de una pdf. Hay un buen tutorial sobre generación de PDF here.

Cuestiones relacionadas