最近做了個小需求婆瓜,為了以后查閱方便寫下這篇文章
主要介紹ios通過wifi連接打印機啄糙,調(diào)用api打印
蘋果內(nèi)置了print的api放刨,直接調(diào)用就可使用工秩,大多數(shù)打印機廠商都有支持,開發(fā)者不需要根據(jù)打印機去適配进统,這點很方便助币,不像安卓,需要安裝插件才能使用
首先螟碎,需要設置代理代理
UIPrintInteractionControllerDelegate
創(chuàng)建打印界面的viewcontroller
UIPrintInteractionController *printer =[UIPrintInteractionController sharedPrintController];
printer.delegate = self;
配置打印信息
UIPrintInfo *Pinfo = [UIPrintInfo printInfo];
Pinfo.outputType = UIPrintInfoOutputGeneral;//可打印文本眉菱、圖形、圖像
Pinfo.jobName = @"Print for Kevin. ";//可選屬性抚芦,用于在打印中心中標識打印作業(yè)
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環(huán)境下的打印機,測試demo用的佳能的打印機褥民,wifi是打印機建立的熱點季春,也可以把打印機配置到自己的wifi中(較復雜)。
【編輯人員:kevin
轉發(fā)請注明消返,謝謝】