iOS AirPrint

最近做了个小需求,为了以后查阅方便写下这篇文章

主要介绍ios通过wifi连接打印机,调用api打印

苹果内置了print的api,直接调用就可使用,大多数打印机厂商都有支持,开发者不需要根据打印机去适配,这点很方便,不像安卓,需要安装插件才能使用

首先,需要设置代理代理


UIPrintInteractionControllerDelegate

创建打印界面的viewcontroller


UIPrintInteractionController *printer =[UIPrintInteractionController sharedPrintController];

printer.delegate = self;

配置打印信息


UIPrintInfo *Pinfo = [UIPrintInfo printInfo];

Pinfo.outputType = UIPrintInfoOutputGeneral;//可打印文本、图形、图像

Pinfo.jobName = @"Print for Kevin. ";//可选属性,用于在打印中心中标识打印作业

Pinfo.duplex = UIPrintInfoDuplexLongEdge;//双面打印绕长边翻页,NONE为禁止双面

Pinfo.orientation = UIPrintInfoOrientationPortrait;//打印纵向还是横向

给打印控制器制定信息


printer.printInfo = Pinfo;

读取需要打印的pdf,支持图片和pdf(其他的没有试过)


NSString *path = [[NSBundle mainBundle] pathForResource:@"test010" ofType:@"pdf"];

NSString *path1 = [[NSBundle mainBundle] pathForResource:@"test020" ofType:@"pdf"];

printer.printingItems = @[[NSURL fileURLWithPath:path],[NSURL fileURLWithPath:path1],];

//    printer.printingItems = @[[UIImage imageNamed:@"test001"], [UIImage imageNamed:@"test002"],];

printer.showsPageRange = NO;

[printer presentAnimated:YES completionHandler:^(UIPrintInteractionController * _Nonnull printInteractionController, BOOL completed, NSError * _Nullable error) {

        if (!completed && error) {

            NSLog(@"Error");

        }

    }];

至此,基本的打印就结束了,打印界面可以选择wifi环境下的打印机,测试demo用的佳能的打印机,wifi是打印机建立的热点,也可以把打印机配置到自己的wifi中(较复杂)。

【编辑人员:kevin

转发请注明,谢谢】

你可能感兴趣的:(iOS AirPrint)