ios - Printing photo from URL using UIPrintInteractionController clips parts of my photo -
i'm trying photo printed through uiprintinteractioncontroller. should print 4x6, , does, clips parts of photo (not of it, half inch on both directions). i'm printing directly url, , final pixel size of image 600 x 900 px.
does apple have specific pixel size expects images print 4x6 perfectly? know it? doing wrong?
code:
nsurl *imageurl = [nsurl urlwithstring:urlofimage]; nsdata *data = [nsdata datawithcontentsofurl:imageurl]; uiimage *imagetoprint = [[uiimage alloc] initwithdata:data]; uiprintinteractioncontroller *controller = [uiprintinteractioncontroller sharedprintcontroller]; if(!controller){ nslog(@"couldn't shared uiprintinteractioncontroller!"); return; } controller.delegate = self; // need completion handler block printing. uiprintinteractioncompletionhandler completionhandler = ^(uiprintinteractioncontroller *printcontroller, bool completed, nserror *error) { if(completed && error) nslog(@"failed! due error in domain %@ error code %u", error.domain, error.code); }; // obtain printinfo can set our printing defaults. uiprintinfo *printinfo = [uiprintinfo printinfo]; // application prints photos. uikit pick paper size , print // quality appropriate content type. printinfo.outputtype = uiprintinfooutputphoto; // path image may or may not name our print job // that's we've got. printinfo.jobname = [[imageurl path] lastpathcomponent]; if(!controller.printingitem && imagetoprint.size.width > imagetoprint.size.height) printinfo.orientation = uiprintinfoorientationlandscape; controller.printinfo = printinfo; controller.printingitem = nil; if(imageurl && [uiprintinteractioncontroller canprinturl:imageurl]) controller.printingitem = imageurl; if(!controller.printingitem) { printphotopagerenderer *pagerenderer = [[printphotopagerenderer alloc]init]; // printphotopagerenderer subclass needs image draw. if taking // path use original image , not fullscreenimage obtained // alassetrepresentation. pagerenderer.imagetoprint = imagetoprint; controller.printpagerenderer = pagerenderer; } [controller presentanimated:yes completionhandler:completionhandler];
the printphotorenderer taken directly apple's printphoto code.
any tips or ideas appreciated!
Comments
Post a Comment