Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PDF and MFMailComposeViewController

Writing the part of the app that allows the user to generate a pdf and send it. Seems to be working fine. The sent PDF opens fine on the MAC, but on the iPhone it just keeps loading and never opens. Created a pdf document with the help of Ray Wenderlich Tutorial and sent it out through a modal view controller with a instance of an MFMailComposeViewController. WTF am i doing wrong.

Update: The PDF also opens fine on the Ipad. Could the problem be somewhere in the code for creating the PDF? Also it is a little unclear to me if I am actually creating a PDF that is persisting and then getting replaced after each new version of the same named file or am I somehow tricking the compiler into thinking a doc is getting stored so I can send it out with the least code possible.

Any thoughts on this would be appreciated.

check out the code:

if ([MFMailComposeViewController canSendMail])

{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;

[picker setSubject:@"mail test"];

NSString* fileName = @"Invoice.PDF";
NSArray *arrayPaths =
NSSearchPathForDirectoriesInDomains(
                                    NSDocumentDirectory,
                                    NSUserDomainMask,
                                    YES);
NSString *path = [arrayPaths objectAtIndex:0];
NSString* pdfFileName = [path stringByAppendingPathComponent:fileName];
NSData *myData = [NSData dataWithContentsOfFile:pdfFileName];

[picker addAttachmentData:myData mimeType:@"application/pdf" fileName:@"the PDF"];
[self presentModalViewController:picker animated:YES];

}

like image 230
Pencil Avatar asked Dec 26 '22 19:12

Pencil


1 Answers

try this way

 [picker addAttachmentData:myData mimeType:@"application/pdf" fileName:@"thePDF.pdf"]; 

BTW, if you are generating the PDF content just before sending it, you don't need to save to a real pdf file, just send the PDF data

like image 57
jcesarmobile Avatar answered Dec 30 '22 11:12

jcesarmobile