2
나는 스크린 샷을 찍고 바로 인쇄하려고합니다. 어떤 이유로 응답하지 않습니다. 스크린 샷을 문서 디렉토리에 저장하고 있습니다. 코드는 다음과 같습니다.IOS에서 화면 캡처 및 인쇄
-(IBAction)printdoc
{
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
NSData * imageData = UIImageJPEGRepresentation(viewImage, 1.0);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"Screenshot.jpg"];
[imageData writeToFile:documentsDirectory atomically:YES];
NSString *myFilePath = [documentsDirectory stringByAppendingPathComponent:@"Screenshot.jpg"];
NSData *myData = [NSData dataWithContentsOfFile:myFilePath];
UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
if (pic && [UIPrintInteractionController canPrintData:myData]) {
pic.delegate = self;
NSLog(@"CAN PRINT !!!!!!!!!!!!");
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = [myFilePath lastPathComponent];
printInfo.duplex = UIPrintInfoDuplexLongEdge;
pic.printInfo = printInfo;
pic.showsPageRange = YES;
pic.printingItem = myData;
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *pic, BOOL completed, NSError *error) {
if (!completed && error)
NSLog(@"FAILED! due to error in domain %@ with error code %u",
error.domain, error.code);
};
// iPad only printing
[pic presentAnimated:YES completionHandler:completionHandler];
}
}
제목에 Xcode라는 단어가 없으므로 (실제 문제와 관련이 거의 없거나 전혀 없을 것입니다.) 사람들을 위해 좀 더 분명하게 보이도록 만들었습니다. 너의 질문에, 로이. –
오, 죄송합니다 :) –
물론 Xcode 태그도 제거해야합니다. ;-) –