3

オンラインからPDFファイルを生成しました。pdfを見ながら、自動的に添付されたpdfをメールで送信したい。私はたくさんのコードを使用しましたが、すべてが単一のpdfで正常に機能します。

4

3 に答える 3

9

これを試して、

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");
}
于 2012-04-25T05:03:55.670 に答える
1

ありがとう@Gypsa
ここに迅速なコードがあります

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
        })
    }
于 2015-09-15T07:06:20.513 に答える
0

mimeタイプはpdfに変更されているので、このmimeタイプを使用してください。

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

次に、将来のある時点で、そのpdfDataをMFMailComposeViewControllerに渡す必要があります。

MFMailComposeViewController *vc = [[[MFMailComposeViewController alloc] init] autorelease];
[vc setSubject:@"my pdf"];
[vc addAttachmentData:pdfData mimeType:@"image/pdf" fileName:@"SomeFile.pdf"];
于 2012-10-17T14:10:56.397 に答える