Il y a beaucoup de ressources sur la façon d'afficher un PDF dans une Application de l' UIView
. Ce que je suis en train de travailler sur maintenant est de créer un fichier PDF à partir d' UIViews
.
Par exemple, j'ai un UIView
, avec des sous-vues comme Textviews, UILabels
, UIImages
, alors comment puis-je convertir un gros UIView
l'ensemble, y compris tous les sous-vues et subsubviews d'un PDF?
J'ai vérifié l'iOS d'Apple de référence. Cependant, il ne parle que de l'écriture des morceaux de texte/image dans un fichier PDF.
Le problème, je suis confronté est que le contenu que je veux écrire dans un fichier au format PDF, c'est beaucoup. Si je les écris au format PDF en pièce par pièce, il va être énorme travail à faire.
C'est pourquoi je suis à la recherche d'une façon d'écrire UIViews
aux documents Pdf ou encore des bitmaps.
J'ai essayé le code source, j'ai copié à partir d'autres Q/A dans le Débordement de la Pile. Mais il ne me donne un fichier PDF vide avec l' UIView
limites de taille.
-(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);
}
S'il vous plaît aider. Merci.