Il existe de nombreuses ressources sur la façon d'afficher un PDF dans une application UIView
. Ce sur quoi je travaille maintenant, c'est de créer un PDF à partir de UIViews
.
Par exemple, j'ai un UIView
, avec comme subviews Textviews, UILabels
, UIImages
, alors comment puis - je convertir un grand UIView
dans son ensemble , y compris tous ses sous - vues et subsubviews à un PDF?
J'ai vérifié la référence iOS d'Apple . Cependant, il ne parle que de l'écriture de morceaux de texte / image dans un fichier PDF.
Le problème auquel je suis confronté est que le contenu que je souhaite écrire dans un fichier au format PDF est important. Si je les écris dans le PDF pièce par pièce, ce sera un travail énorme à faire. C'est pourquoi je recherche un moyen d'écrire UIViews
dans des PDF ou même des bitmaps.
J'ai essayé le code source que j'ai copié à partir d'autres questions / réponses dans Stack Overflow. Mais cela ne me donne qu'un PDF vierge avec la UIView
taille des limites.
-(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);
}