2012-01-13 42 views
17

Tôi muốn đính kèm pdf được tạo dưới dạng tệp đính kèm email. Tôi đã sử dụng hướng dẫn sau để tạo pdf trên thiết bị iOS.pdf dưới dạng tệp đính kèm email trong thiết bị iOS

Bạn có thể xem pdf đã tải xuống tại đường dẫn này: /Người dùng/"Tên người dùng"/Thư viện/Ứng dụng hỗ trợ/Trình mô phỏng iPhone/"Thư mục ứng dụng của bạn".

Tôi chưa thử chạy ứng dụng này trên thiết bị iOS nhưng tôi cần đính kèm nó dưới dạng email.

Link cho hướng dẫn là: http://www.ioslearner.com/generate-pdf-programmatically-iphoneipad/

Bất kỳ đề nghị.

+0

I dunno @PengOne. Nó trông giống như một tuyên bố thành tích ("Tôi tạo ra một PDF!"). Có lẽ anh ta muốn ai đó nói với anh ta cách sử dụng 'MFMessageComposeViewController' ?? –

+2

Tôi khuyên bạn nên đọc tài liệu và cố gắng tự mình thực hiện trước khi bạn đặt câu hỏi. Dưới đây là các tài liệu: http: //developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMailComposeViewController_class/Reference/Reference.html Hãy dùng thử, nếu bạn gặp lỗi, hãy cho chúng tôi biết lỗi là gì và sau đó chúng tôi có thể cố gắng giúp bạn. – sosborn

+0

Cảm ơn sosborn. – user1140780

Trả lời

54

Tạo MFMailComposeViewController và gọi addAttachmentData:mimeType:fileName:. Dữ liệu sẽ là tệp PDF bạn đã tạo. MimeType sẽ là application/pdf. Và tên tệp sẽ là tên của tệp trong tệp đính kèm email. Các mã có thể trông giống như một cái gì đó dưới đây:

Từ hướng dẫn bạn sẽ cần phải render PDF của bạn vào một đối tượng NSMutableData:

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

Sau đó, tại một số điểm trong tương lai bạn sẽ cần phải vượt qua mà pdfData đến số MFMailComposeViewController.

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

Cảm ơn Evan về đoạn mã. – user1140780

+0

Tôi vẫn thiếu danh tiếng Voteup 2 điểm. :(... Dù sao, mã của tôi đang hoạt động. Cảm ơn một tấn: D – user1140780

+0

Cách đặt thuộc tính để thêm bảo mật để không ai có thể chỉnh sửa và cũng có thể in/sao chép tệp đính kèm. Tôi đang cố gắng như sau: // this một là để sao chép CFDictionarySetValue (myDictionary, kCGPDFContextAllowsCopying, kCFBooleanFalse); CFDictionarySetValue (myDictionary, kCGPDFContextAllowsPrinting, kCFBooleanFalse); Tôi tìm trong tài liệu của apple nhưng không thể tìm thấy phương pháp để bảo vệ cho việc chỉnh sửa. http://developer.apple.com . /library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html Ngay cả hai phương pháp trên tôi không làm việc – user1140780

2

Xem docs cho MFMailComposeViewController. Cụ thể, bạn đang tìm kiếm phương thức addAttachmentData:mimeType:fileName:. Điều đó sẽ giúp bạn đi.

+0

Tôi nghĩ tôi không rõ ràng về câu hỏi của mình. xin lỗi abt đó. Tôi không chắc chắn về đường dẫn đính kèm pdf vào email. Trong mã mẫu trên diễn đàn dành cho nhà phát triển: NSString * path = [[NSBundle mainBundle] pathForResource: @ "rainy" ofType: @ "png"]; NSData * myData = [Dữ liệu NSDataWithContentsOfFile: đường dẫn]; Ở đây đường dẫn đầy đủ không được yêu cầu vì tệp đính kèm đã được thêm vào chính dự án. Bây giờ khi tôi đang tạo bản pdf trên thiết bị, tôi nên gửi đường dẫn để gửi đi bằng cách nào? – user1140780

+0

Vì hướng dẫn đó đang lưu tệp PDF vào hệ thống tệp, bạn chỉ cần chuyển trong cùng một đường dẫn đến 'dataWithContentsOfFile:' mà bạn đã chuyển vào 'generatePdfWithFilePath:'. Có lý? –

+0

Cảm ơn rất nhiều Jesse. – user1140780

Các vấn đề liên quan