2012-01-13 20 views
17

Me gustaría adjuntar el pdf creado como un archivo adjunto de correo electrónico. Utilicé el siguiente tutorial para crear pdf en un dispositivo con iOS.pdf como un archivo adjunto de correo electrónico en el dispositivo iOS

El PDF descargado se puede ver en esta ruta: /Users/"Nombre de usuario"/Biblioteca/Soporte de aplicaciones/iPhone Simulator/"Su directorio de aplicaciones".

No he intentado ejecutar esto en el dispositivo ios, pero tengo que adjuntarlo como un correo electrónico.

Enlace de tutorial es: http://www.ioslearner.com/generate-pdf-programmatically-iphoneipad/

Cualquier sugerencia.

+0

I dunno @PengOne. Parece una declaración de logros ("¡Creé un PDF!"). Tal vez él quiere que alguien le diga cómo usar 'MFMessageComposeViewController' ?? –

+2

Sugiero leer la documentación e intentar implementarla usted mismo antes de hacer una pregunta. Aquí están los documentos: http: //developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMailComposeViewController_class/Reference/Reference.html Pruébelo, si tiene errores, vuelva y díganos cuáles son los errores y entonces podemos intentar ayudarte. – sosborn

+0

Gracias sosborn. – user1140780

Respuesta

54

Crea un MFMailComposeViewController y llama al addAttachmentData:mimeType:fileName:. Los datos serán el PDF que ha creado. El mimeType será application/pdf. Y el nombre de archivo será el nombre del archivo en el archivo adjunto de correo electrónico. El código podría ser algo como a continuación:

Desde el tutorial que necesita para hacer que su PDF en un objeto NSMutableData:

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

Entonces, en algún momento en el futuro que necesita para pasar esa pdfData al MFMailComposeViewController.

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

Gracias a Evan por el fragmento de código. – user1140780

+0

Todavía me falta reputación de Me gusta por 2 puntos. :(... De todos modos, mi código está funcionando ahora. Muchas gracias: D – user1140780

+0

Cómo configurar propiedades para agregar seguridad para que nadie pueda editar y también imprimir/copiar el archivo adjunto. Estoy intentando algo como esto: // esto una es para copiar CFDictionarySetValue (myDictionary, kCGPDFContextAllowsCopying, kCFBooleanFalse); CFDictionarySetValue (myDictionary, kCGPDFContextAllowsPrinting, kCFBooleanFalse); Miré en el documento de la manzana pero no puedo encontrar el método para proteger la edición. http://developer.apple.com . /library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html Incluso mis dos métodos anteriores no funcionan – user1140780

2

Ver el docs para MFMailComposeViewController. Específicamente, está buscando el método addAttachmentData:mimeType:fileName:. Eso te ayudara a llegar.

+0

Creo que no estaba claro sobre mi pregunta. lo siento abt eso. No estoy seguro acerca de la ruta para adjuntar el pdf al correo electrónico. En el código de ejemplo en el foro de desarrolladores: NSString * path = [[NSBundle mainBundle] pathForResource: @ "rainy" ofType: @ "png"]; NSData * myData = [NSData dataWithContentsOfFile: path]; Aquí no se requiere la ruta completa ya que el archivo adjunto se agregó al proyecto. Ahora cuando estoy creando pdf en el dispositivo, ¿cómo debo dar la ruta para enviar? – user1140780

+0

Dado que ese tutorial guarda el PDF en el sistema de archivos, solo debe pasar la misma ruta a 'dataWithContentsOfFile:' que pasó a 'generatePdfWithFilePath:'. ¿Tener sentido? –

+0

Muchas gracias Jesse. – user1140780

Cuestiones relacionadas