i've 1 question. possible print image temporarily saved? saved image done in example of question on stackoverflow.
but when try use picture printing via airprint doesn't work.
- (ibaction)btnprinttapped:(id)sender { uiimage* image = nil; uigraphicsbeginimagecontext(_scrollview.contentsize); { cgpoint savedcontentoffset = _scrollview.contentoffset; cgrect savedframe = _scrollview.frame; _scrollview.contentoffset = cgpointzero; _scrollview.frame = cgrectmake(0, 0, _scrollview.contentsize.width, _scrollview.contentsize.height); [_scrollview.layer renderincontext: uigraphicsgetcurrentcontext()]; image = uigraphicsgetimagefromcurrentimagecontext(); _scrollview.contentoffset = savedcontentoffset; _scrollview.frame = savedframe; } uigraphicsendimagecontext(); if (image != nil) { [uiimagepngrepresentation(image) writetofile: @"/tmp/test.png" atomically: yes]; uiimage *yourimage = [uiimage imagenamed:@"/tmp/test.png"]; nsarray *itemstoshare = @[yourimage]; uiactivityviewcontroller *activityvc = [[uiactivityviewcontroller alloc] initwithactivityitems:itemstoshare applicationactivities:nil]; activityvc.excludedactivitytypes = @[ uiactivitytypecopytopasteboard, uiactivitytypeassigntocontact, uiactivitytypesavetocameraroll, uiactivitytypemail, uiactivitytypemessage, uiactivitytypeposttofacebook, uiactivitytypeposttotwitter, uiactivitytypeposttoweibo]; [self presentviewcontroller:activityvc animated:yes completion:nil]; } } but printer able print (i tested fix image)...so printer not seems problem. in advance.
update did changes code/added few code lines:
[uiimagepngrepresentation(image) writetofile: @"/tmp/test.png" atomically: yes]; nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory,nsuserdomainmask, yes); nsstring *documentsdirectory = [paths objectatindex:0]; nsstring* path = [documentsdirectory stringbyappendingpathcomponent:@"/tmp/test.png" ]; uiimage* image = [uiimage imagewithcontentsoffile:path]; uiimage *imageitem = image; but works when set writetofile: @"test.png"...but can save image once , not overwrite it.
when code above there 1 error:
terminating app due uncaught exception 'nsinvalidargumentexception', reason: ' -[__nsplaceholderarray initwithobjects:count:]: attempt insert nil object objects[0]'
after bit trying works now...
if (image != nil) { nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes); nsstring *documentsdirectory = [paths objectatindex:0]; nsstring* path = [documentsdirectory stringbyappendingpathcomponent: @"test.png" ]; nsdata* data = uiimagepngrepresentation(image); [data writetofile:path atomically:yes]; uiimage* image = [uiimage imagewithcontentsoffile:path]; uiimage *yourimage = image;
Comments
Post a Comment