4

ユーザーが PDF を生成して送信できるようにするアプリの部分を作成します。うまくいっているようです。送信された PDF は MAC では正常に開きますが、iPhone では読み込みが継続され、開かれません。Ray Wenderlich Tutorial の助けを借りて PDF ドキュメントを作成し、MFMailComposeViewController のインスタンスを使用してモーダル ビュー コントローラーを介して送信しました。WTF私は間違っています。

更新: PDF は Ipad でも正常に開きます。問題は、PDF を作成するためのコードのどこかにあるのでしょうか? また、永続化されたPDFを実際に作成していて、同じ名前のファイルの新しいバージョンごとに置き換えられているのか、それともコンパイラをだましてドキュメントが保存されていると思わせて送信できるのか、少し不明です可能な限り最小限のコードでアウトします。

これに関する任意の考えをいただければ幸いです。

コードをチェックしてください:

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];

}

4

1 に答える 1

10

この方法を試してください

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

ところで、送信する直前に PDF コンテンツを生成している場合は、実際の PDF ファイルに保存する必要はなく、PDF データを送信するだけです。

于 2012-09-10T06:44:51.680 に答える