0

我正在为 Ipad 做一个应用程序,我正在尝试附加一个 pdf 文件以通过电子邮件发送,为此我创建了一个这样的 pdf。

pageSize= CGSizeMake(612, 792);
    NSString *fileName=@"prueba.pdf";
    NSArray *paths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pdfFileName= [documentsDirectory stringByAppendingPathComponent:fileName];

    NSString *url=[fileName stringByAppendingPathComponent:fileName];
    [self generatePdfWithFilePath:pdfFileName];
    NSData *pdfData = [NSData dataWithContentsOfFile:url];

下一步是创建一封电子邮件以发送 pdf 我 dis this, like this..

   if ([MFMailComposeViewController canSendMail]){
        MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
        mailer.mailComposeDelegate = self;
        [mailer setSubject:@"esto es para probar"];
        NSArray *toRecipients = [NSArray arrayWithObjects:currentuser.email, nil];
        [mailer setToRecipients:toRecipients];
        [mailer addAttachmentData:pdfData mimeType:@"application/pdf" fileName:fileName];
        NSString *emailBody = @"correo prueba";
        [mailer setMessageBody:emailBody isHTML:NO];
        [self presentModalViewController:mailer animated:YES];
        mailer.modalPresentationStyle = UIModalPresentationPageSheet;

    }else{
...

我生成我创建了 pdf 并且一切正常,当我看到电子邮件时,我看到 de pdf 像图像(图片)一样附加,但问题是当我收到电子邮件时没有附加任何内容。

任何想法

4

2 回答 2

3

在我看来,在您的代码中,您正在颠倒以下两个步骤的顺序:

NSData *pdfData = [NSData dataWithContentsOfFile:url];
[self generatePdfWithFilePath:pdfFileName];

如果我正确解释 的含义generatePdfWithFilePath:pdfFileName,我认为这一步应该在另一个之前执行。IE:

[self generatePdfWithFilePath:pdfFileName];
NSData *pdfData = [NSData dataWithContentsOfFile:url];

希望这可以帮助。

于 2013-10-17T10:02:14.577 回答
0

终于工作了,我为某人提出了解决方案..谢谢

 pageSize= CGSizeMake(612, 792);
    NSString *fileName=@"prueba.pdf";
    NSArray *paths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pdfFileName= [documentsDirectory stringByAppendingPathComponent:fileName];
    [self generatePdfWithFilePath:pdfFileName];
    NSData *pdfData = [NSData dataWithContentsOfFile:pdfFileName];
    G7DatabaseInterface *databaseInterface = [[DatabaseInterface alloc] init];
    G7User *currentuser=[databaseInterface userByUsername:self.appDelegate.userName];

好的,我解释得更好,对不起,在修复之前我有这个,问题出在这一行

NSString *url=[fileName stringByAppendingPathComponent:fileName];

我的网址是 prueba.pdf/prueba.pdf 所以路径是错误的!!

我这样修

NSString *pdfFileName= [documentsDirectory stringByAppendingPathComponent:fileName];

并删除 *url 我不使用它。

于 2013-10-17T11:39:58.040 回答