Упс, вы спрашивали о Какао, а это Cocoa Touch, но я оставлю это здесь, так как это может быть полезно (по крайней мере, для тех, кто найдет это позже).
Вы можете рисовать вещив представлении и затем поместите то, что там, в pdf.
Этот код возьмет то, что нарисовано в UIView (здесь он называется sheetView), поместит его в pdf, затем поместит это в качестве вложения в электронное письмо (такВы можете видеть это сейчас).Вам нужно будет сослаться на протокол MFMailComposeViewControllerDelegate в своем заголовке.
if ([MFMailComposeViewController canSendMail]) {
//set up PDF rendering context
NSMutableData *pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData(pdfData, sheetView.bounds, nil);
UIGraphicsBeginPDFPage();
//tell our view to draw (would normally use setNeedsDisplay, but need drawn now).
[sheetView drawRect:sheetView.bounds];
//remove PDF rendering context
UIGraphicsEndPDFContext();
//send PDF data in mail message as an attachment
MFMailComposeViewController *mailComposer = [[[MFMailComposeViewController alloc] init] autorelease];
mailComposer.mailComposeDelegate = self;If
[mailComposer addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"SheetView.pdf"];
[self presentModalViewController:mailComposer animated:YES];
}
else {
if (WARNINGS) NSLog(@"Device is unable to send email in its current state.");
}
Вам также понадобится этот метод ...
#pragma mark -
#pragma mark MFMailComposeViewControllerDelegate protocol method
//also need to implement the following method, so that the email composer can let
//us know that the user has clicked either Send or Cancel in the window.
//It's our duty to end the modal session here.
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
[self dismissModalViewControllerAnimated:YES];
}