2011-02-07 9 views
0

私はObjective Cの新機能ですので、助けてください。電子メールのためのビューからPDFを生成

私はいくつかのラベルとテキストビューを持つビューを持っています。私はそのページ/ビュー用のPDFファイルを生成して電子メールに添付しようとしています。

まず、この方法を試したところ、ファイルが作成されていないか、電子メールに添付されていないようです。ここに私のコードです:

NSMutableData *pdfData = [NSMutableData data]; 
UIGraphicsBeginPDFContextToData(pdfData, self.view.bounds, nil); 
UIGraphicsBeginPDFPage(); 

[self.view drawRect:self.view.bounds]; 

UIGraphicsEndPDFContext(); 

MFMailComposeViewController *mailComposer = [[[MFMailComposeViewController alloc] init] autorelease]; 
mailComposer.mailComposeDelegate = self; 



[pdfData writeToFile:file atomically:YES]; 



[mailComposer addAttachmentData:pdfData mimeType:@"application/pdf" fileName:file]; 

[self presentModalViewController:mailComposer animated:YES]; 

そして、それがうまくいかなかったので、私は、電子メールに添付し、最初別途PDFを作成することによって、異なるアプローチを試してみました。それからPDFファイルがそのディレクトリに作成されているのを見ましたが、それは空です!!!ここで

私の改訂コードです:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *file = [documentsDirectory stringByAppendingFormat:@"/tempFile.pdf"]; 

UIGraphicsBeginPDFContextToFile(file, self.view.bounds, nil); 
UIGraphicsBeginPDFPage(); 

[self.view drawRect:self.view.bounds]; 

UIGraphicsEndPDFContext(); 

MFMailComposeViewController *mailComposer = [[[MFMailComposeViewController alloc] init] autorelease]; 
mailComposer.mailComposeDelegate = self; 



[pdfData writeToFile:file atomically:YES]; 



[mailComposer addAttachmentData:pdfData mimeType:@"application/pdf" fileName:file]; 


[self presentModalViewController:mailComposer animated:YES]; 
  • あなたがして、電子メールに添付し、成功したビューからPDFを作成するために私を助けてくださいことはできますか?

私はいくつかの方法を試しましたが、私が間違っていることを理解できません。本当にありがとう!!!

+0

こんにちは!これのための任意のソリューション??ありがとう! – Frade

答えて

3
NSMutableData *pdfData = [NSMutableData data]; 
UIGraphicsBeginPDFContextToData(pdfData, self.view.bounds, nil); 
UIGraphicsBeginPDFPage(); 

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

UIGraphicsEndPDFContext(); 

MFMailComposeViewController *mailComposer = [[[MFMailComposeViewController alloc] init] autorelease]; 

mailComposer.mailComposeDelegate = self; 

[mailComposer addAttachmentData:pdfData mimeType:@"pdf" fileName:@"file.pdf"]; 

[self presentModalViewController:mailComposer animated:YES]; 

注: はドローRECTは私が働いていないそのviews.Forの作品を知ってはいけません! file.youにデータを書き込むための 不要メールは

[mailComposer addAttachmentData:pdfData mimeType:@"pdf" fileName:@"file.pdf"]; 

として構成されている間にそれを行う直接することができ、この【選択のMIMEタイプがpdf.Alsoは、ファイル名のファイルに拡張子を含める文字列のみを必要としてみてください。 pdf。

ハッピーコーディング:)