最近做了个小需求,为了以后查阅方便写下这篇文章
主要介绍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
转发请注明,谢谢】
网友评论