ios - Drawing PDF from two views -
ios - Drawing PDF from two views -
i have first view firstview , draw sec view secondview , add together subview firstview. have method creates firstview pdf file:
-(void)createpdffromuiview:(uiview*)firstview { nsmutabledata *pdfdata = [nsmutabledata data]; uigraphicsbeginpdfcontexttodata(pdfdata, self.view.bounds, nil); uigraphicsbeginpdfpage(); cgcontextref pdfcontext = uigraphicsgetcurrentcontext(); [firstview.layer drawincontext:pdfcontext]; uigraphicsendpdfcontext(); nsarray* documentdirectories = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask,yes); nsstring* documentdirectory = [documentdirectories objectatindex:0]; nsstring* documentdirectoryfilename = [documentdirectory stringbyappendingpathcomponent:@"resolution.pdf"]; [pdfdata writetofile:documentdirectoryfilename atomically:yes]; nslog(@"documentdirectoryfilename: %@",documentdirectoryfilename); } how can draw 1 pdf 2 views, pdf file must include @ 1 page firstview , secondview
added
in viewcontroller in loadview method
awfirstview *firstview = [[awfirstview alloc] init]; self.view = firstview; self.secondview = [[awsecondtview alloc] initwithframe:cgrectmake(0, 50, 300., 300.)]; [self.secondview setbackgroundcolor:[uicolor clearcolor]]; self.createpdfbutton = [uibutton buttonwithtype:uibuttontypecustom]; self.createpdfbutton.frame =cgrectmake(0, 0, 88., 50.); [self.createpdfbutton setbackgroundcolor:[uicolor whitecolor]]; [self.createpdfbutton addtarget:self action:@selector(createpdf) forcontrolevents:uicontroleventtouchupinside]; [self updateview]; [self.view addsubview:self.drawwindow]; [self.view addsubview:self.createpdfbutton]; in updateview this:
-(void)updateview { if(![self isviewloaded]) return; [[awservices services].uicontext updateobjectincurrentcontext:&_resolution]; awfirstview *view = (awfirstview *)self.view; view.post = _resolution.contact.officialpersonpost; view.name = _resolution.contact.officialpersonfullname; [view.superview setneedsdisplay]; in
-(void)createpdf{ [self createpdffromuiview:self.view]; }
try this:
uigraphicsbeginpdfcontexttodata(pdfdata, firstview.bounds, nil); uigraphicsbeginpdfpage(); cgcontextref pdfcontext = uigraphicsgetcurrentcontext(); [firstview.layer drawincontext:pdfcontext]; notice sending drawincontext: firstview, opposed myview doing. if firstview passed in method, should give expected result.
edit: not adding secondview subview; (third line):
self.secondview = [[awsecondtview alloc] initwithframe:cgrectmake(0, 50, 300., 300.)]; [self.secondview setbackgroundcolor:[uicolor clearcolor]]; [self.firstview addsubview:self.secondview]; furthermore, assignment doing self.view not good:
self.view = firstview; either do:
[self.view addsubview:self.firstview]; or define loadview in view controller , assign there self.view.
ios objective-c pdf uiview
Comments
Post a Comment