im используя xcode 5. Я хотел бы знать, как печатать текущее изображение. Итак, простая кнопка, которая говорит «печатать», когда пользователь нажимает на нее, он печатает все на экране. Как мне это реализовать?Воздушная печать вид
ответ
Возьмите скриншот зрения
и сохранить как PNG в пути и передать данные UIPrintInteractionController
SCREENSHOT
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGRect rect=self.view.frame;
CGImageRef cropped1 = CGImageCreateWithImageInRect(viewImage.CGImage, rect);
UIImage *imges = [UIImage imageWithCGImage:cropped1];
CGImageRelease(cropped1);
// squarecropimg.image=imges;
NSData *date=UIImagePNGRepresentation(imges);
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *doc=[paths objectAtIndex:0];
NSString *appstr=[doc stringByAppendingPathComponent:@“currentview.png"];
[Дата WriteToFile: appstr атомарно: YES];
передать данные о CURRENTVIEW.PNG на принтер
ДЛЯ интеграции UIPrintInteraction добавить UIPrintInteractionControllerDelegate и использовать следующий код
UIPrintInteractionController *print_picker = [UIPrintInteractionController sharedPrintController];
if(print_picker && [UIPrintInteractionController canPrintData: **CURRENTIMAGE DATA HERE** ]) {
print_picker.delegate = self;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = @"JOBNAME";
printInfo.duplex = UIPrintInfoDuplexLongEdge;
print_picker.printInfo = printInfo;
print_picker.showsPageRange = YES;
print_picker.printingItem = **CURRENTIMAGE DATA HERE**;
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *pic, BOOL completed, NSError *error) {
//self.content = nil;
if (!completed && error) {
NSLog(@"FAILED! due to error in domain %@ with error code %u", error.domain, error.code);
}
};
[print_picker presentAnimated:YES completionHandler:completionHandler];
}
Мне очень жаль беспокоить вас и раздражать вас, но что я хотел бы внести ** CURRENTIMAGE DATA HERE ** и в [self getimagedate]; Я получаю ошибки только для этих двух. Еще раз спасибо – user2972076
Вам нужно поставить первый код для скриншота NSData * date = UIImagePNGRepresentation (imges); эта дата и в обоих данных CURRENTIMAGE DATA. Я отредактировал мой ответ выше – Parthi
FYI: вам не нужно, чтобы Записываем образ на пути до тех пор пока он требует. Вы можете просто передать данные из представления UIImagePNGR и перейти к печати воздуха – Parthi
Спасибо, но я что-то добавлю в файл .h? Извините, им действительно ничего не нужно для разработки xcode @Parthi – user2972076
Не нужно добавлять никаких файлов. – Parthi