Hay muchos recursos sobre cómo mostrar un PDF en la aplicación UIView
. En lo que estoy trabajando ahora es crear un PDF desde UIViews
.¿Cómo convertir UIView a PDF dentro de iOS?
Por ejemplo, tengo un UIView
, con subvistas como Textviews, UILabels
, UIImages
, así que ¿cómo puedo convertir un gran UIView
en su conjunto incluyendo todas sus subvistas y subsubviews a un PDF?
He comprobado Apple's iOS reference. Sin embargo, solo se trata de escribir fragmentos de texto/imagen en un archivo PDF.
El problema al que me enfrento es que el contenido que quiero escribir en un archivo como PDF es mucho. Si los escribo al PDF pieza por pieza, va a ser un gran trabajo hacerlo. Es por eso que estoy buscando una forma de escribir UIViews
en archivos PDF o incluso mapas de bits.
He intentado con el código fuente que he copiado de otra Q/A dentro de Stack Overflow. Pero solo me da un PDF en blanco con el tamaño de límites UIView
.
-(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 drawRect:aView.bounds];
// 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);
}
Por favor ayuda. Gracias.
+1 Fui a través de varios mensajes sobre la generación de pdf antes de encontrar una solución tan simple. –
Quería hacer lo mismo y su método parece funcionar bien, pero su calidad es muy baja. ¿Yo me perdí algo? – iEamin
Sospecho que la calidad es bastante baja porque está tomando el UIView y convirtiéndolo en un ráster, mientras que los otros métodos de representación de texto e imágenes los preservan directamente como vectores en el archivo PDF. – joshaidan