2012-01-13 15 views
17

電子メールの添付ファイルとして作成されたpdfを添付したいと思います。私はiOSデバイス上でpdfを作成するために以下のチュートリアルを使用しました。iOSデバイスの電子メール添付としてpdf

ダウンロードしたPDFは /Users/"Username"/Library/Application Support/iPhone Simulator/"Your App Directory"のパスにあります。

私はこれをiosデバイスで実行しようとしませんでしたが、電子メールとして添付する必要があります。チュートリアルの

リンクは次のとおりです。 http://www.ioslearner.com/generate-pdf-programmatically-iphoneipad/

任意の提案。

+0

I dunno @PengOne。達成宣言のようです(「私はPDFを作成しました!」)。たぶん、誰かに 'MFMessageComposeViewController'の使い方を教えてほしいでしょうか? –

+2

質問をする前に、ドキュメントを読んで、それを自分で実装することをお勧めします。ここにdocsがあります:http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMailComposeViewController_class/Reference/Reference.htmlエラーが戻ってきて、エラーの内容を教えてください。私たちはあなたを助けようとすることができます。 – sosborn

+0

ありがとうsosborn。 – user1140780

答えて

54

MFMailComposeViewControllerを作成し、addAttachmentData:mimeType:fileName:を呼び出します。データは作成したPDFになります。 mimeTypeはapplication/pdfになります。また、fileNameは電子メール添付ファイルのファイル名になります。あなたがNSMutableDataオブジェクトにあなたのPDFをレンダリングする必要がありますチュートリアルから

:コードは以下のもののように見えるかもしれません

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

そして、将来のある時点で、あなたはそのpdfDataに合格する必要がありますMFMailComposeViewController

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

コードスニペットに感謝のエヴァン。 – user1140780

+0

私はまだ2点でVoteupの評判が欠けています。 :(...とにかく、私のコードは今働いています。ありがとうトン:D – user1140780

+0

誰も編集することができないように、セキュリティを追加するプロパティを設定する方法も添付ファイルを印刷/コピーします。 1つはCFDictionarySetValue(myDictionary、kCGPDFContextAllowsCopying、kCFBooleanFalse)をコピーするためのものです CFDictionarySetValue(myDictionary、kCGPDFContextAllowsPrinting、kCFBooleanFalse);リンゴのドキュメントを見ていますが、編集のための保護方法が見つかりませんhttp://developer.apple.com 。/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.htmlも、私の上記の2つの方法が機能していない – user1140780

2

MFMailComposeViewControllerdocsを参照してください。具体的には、addAttachmentData:mimeType:fileName:メソッドを探しています。それはあなたを得る必要があります。

+0

私は私の質問についてはっきりしていないと思う。ごめんなさい。 私はpdfを電子メールに添付するためのパスについてはわかりません。サンプルコード の開発者フォーラム: NSString * path = [[NSBundle mainBundle] pathForResource:@ "rainy" ofType:@ "png"]; NSData * myData = [NSData dataWithContentsOfFile:path]; 添付ファイルがプロジェクト自体に追加されたため、完全なパスは必要ありません。 今、私はデバイス自体にpdfを作成していますが、送信するパスをどのように与えるべきですか? – user1140780

+0

このチュートリアルでは、PDFをファイルシステムに保存しているので、 'generatePdfWithFilePath:'に渡した 'dataWithContentsOfFile:'と同じパスを渡すだけです。理にかなっている? –

+0

ありがとうたくさんのJesse。 – user1140780

関連する問題