2012-04-25 4 views
3

J'ai généré des fichiers PDF en ligne. En voyant le pdf, je veux envoyer ce pdf par courrier avec ce pdf attaché automatiquement. J'ai utilisé beaucoup de codes mais tout fonctionne bien pour pdf.can seul m'aider.Joindre un fichier PDF/Doc Avec mon courrier

+2

Quelle est votre question? Qu'avez-vous essayé? Quelles erreurs avez-vous ressenties? – sosborn

+0

"J'ai utilisé beaucoup de codes mais tout fonctionne bien pour pdf.can seul m'aider." Si cela fonctionne bien, de quelle aide avez-vous besoin? – iNoob

+0

@sosborn. Je n'ai pas d'erro. Dans l'iPhone tout en voyant la photo vous pouvez envoyer la photo par mail cette photo sera jointe automatiquement. comme ça je veux envoyer le fichier pdf –

Répondre

9

Essayez ceci,

if([MFMailComposeViewController canSendMail]){  

    MFMailComposeViewController *mail=[[MFMailComposeViewController alloc]init]; 
    mail.mailComposeDelegate=self; 
    [mail setSubject:@"Email with attached pdf"]; 
    NSString *newFilePath = @"get path where the pdf reside"; 

    NSData * pdfData = [NSData dataWithContentsOfFile:newFilePath]; 
[mail addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"yourpdfname.pdf"]; 
    NSString * body = @""; 
    [mail setMessageBody:body isHTML:NO]; 
    [self presentModalViewController:mail animated:YES]; 
    [mail release];   
} 
else 
{ 
    //NSLog(@"Message cannot be sent"); 
} 
+0

Maintenant, le problème est que mon nom de fichier devra changer en fonction du pdf que je vois. Mais il vient le même nom pour tous. –

+1

Puis changez le nom dynamiquement. Gypsa vous donnait juste un exemple de code - c'est à vous de mettre le travail dedans pour l'intégrer. – sosborn

0

type mime est le changement de pdf afin d'utiliser ce type MIME qu'il worksfine pour moi

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

Puis à un moment donné dans l'avenir, vous aurez besoin de passer cette pdfData au MFMailComposeViewController.

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

Je fais quelque chose de similaire, mais l'application se coincer quand j'appuie sur "Envoyer" pour envoyer l'e-mail. Il n'envoie tout simplement ... personne a eu ce problème? –

1

Merci @Gypsa
Voici le code rapide

func composeMail() {

if(MFMailComposeViewController.canSendMail()){ 

     var mail:MFMailComposeViewController = MFMailComposeViewController() 
     mail.mailComposeDelegate = self 

     mail.setSubject("Email with attached pdf") 

     //file name "attatchment.pdf" in project bundle 
     var newFilePath:NSString = NSBundle.mainBundle().pathForResource("attatchment", ofType: "pdf")! 

     var pdfData:NSData = NSData(contentsOfFile: newFilePath as String)! 
     mail.addAttachmentData(pdfData, mimeType: "application/pdf", fileName: "attatchment.pdf") 

     var body:NSString = "" 
     mail.setMessageBody(body as String, isHTML: false) 
     self.presentViewController(mail, animated: true) {() -> Void in 

     } 

    }else{ 

     println("Message cannot be sent") 
    } 
} 

// MARK: - MFMailComposeViewControllerDelegate 
func mailComposeController(controller: MFMailComposeViewController!, didFinishWithResult result: MFMailComposeResult, error: NSError!) 
{ 
    self.dismissViewControllerAnimated(true, completion: {() -> Void in 
    }) 
} 
Questions connexes