2012-01-13 11 views
17

Desidero allegare il pdf creato come allegato e-mail. Ho usato il seguente tutorial per creare pdf su dispositivo iOS.pdf come allegato e-mail nel dispositivo iOS

Il file scaricato può essere visualizzato in questo percorso: /Utenti/"Nome utente"/Libreria/Supporto applicazioni/Simulatore iPhone/"La directory dell'app".

Non ho provato a eseguire questo sul dispositivo ios, ma ho bisogno di allegarlo come e-mail.

Link for tutorial è: http://www.ioslearner.com/generate-pdf-programmatically-iphoneipad/

Qualsiasi suggerimento.

+0

Non so @PengOne. Sembra una dichiarazione di successo ("Ho creato un PDF!"). Forse vuole che qualcuno gli dica come usare 'MFMessageComposeViewController' ?? –

+2

Suggerisco di leggere la documentazione e provare a implementarla da soli prima di fare una domanda. Ecco i documenti: http: //developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMailComposeViewController_class/Reference/Reference.html Provalo, se hai errori torna a dirci quali sono gli errori e allora possiamo provare ad aiutarti. – sosborn

+0

Grazie sosborn. – user1140780

risposta

54

Creare un MFMailComposeViewController e chiamare addAttachmentData:mimeType:fileName:. I dati saranno il PDF che hai creato. Il mimeType sarà application/pdf. E il fileName sarà il nome del file nell'allegato e-mail. Il codice potrebbe apparire come qualcosa di seguito:

dal tutorial avrete bisogno per rendere il vostro PDF in un oggetto NSMutableData:

NSMutableData *pdfData = [NSMutableData data]; 
UIGraphicsBeginPDFContextToData(pdfData, bounds, nil); 

Poi ad un certo punto in futuro sarà necessario passare che pdfData allo MFMailComposeViewController.

MFMailComposeViewController *vc = [[[MFMailComposeViewController alloc] init] autorelease]; 
[vc setSubject:@"my pdf"]; 
[vc addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"SomeFile.pdf"]; 
+0

Grazie a Evan per lo snippet di codice. – user1140780

+0

Mi manca ancora la reputazione di Voteup di 2 punti. :(... Comunque, il mio codice funziona ora Grazie mille: D – user1140780

+0

Come impostare le proprietà per aggiungere sicurezza in modo che nessuno possa modificare e anche stampare/copiare l'allegato. Sto provando qualcosa del genere: // questo uno è per copiare CFDictionarySetValue (myDictionary, kCGPDFContextAllowsCopying, kCFBooleanFalse); CFDictionarySetValue (myDictionary, kCGPDFContextAllowsPrinting, kCFBooleanFalse); Ho cercato nel documento della mela ma non trovo il metodo di protezione per la modifica. http://developer.apple.com . /library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html Anche i miei due metodi non funzionano – user1140780

2

Vedere docs per MFMailComposeViewController. In particolare, stai cercando il metodo addAttachmentData:mimeType:fileName:. Questo dovrebbe farti andare.

+0

Penso di non essere stato chiaro sulla mia domanda. scusa per quello. Non sono sicuro del percorso per allegare il pdf all'e-mail. Nel codice di esempio sul forum degli sviluppatori: NSString * percorso = [[NSBundle mainBundle] pathForResource: @ "rainy" ofType: @ "png"]; NSData * myData = [NSData dataWithContentsOfFile: percorso]; Qui il percorso completo non è stato richiesto poiché l'allegato è stato aggiunto al progetto stesso. Ora, quando sto creando pdf sul dispositivo stesso, come dovrei dare il percorso per l'invio? – user1140780

+0

Dato che il tutorial sta salvando il PDF nel file system, basta passare nello stesso percorso a 'dataWithContentsOfFile:' che si è passato a 'generatePdfWithFilePath:'. Ha senso? –

+0

Grazie mille Jesse. – user1140780

Problemi correlati