使用iOS AirPrint 让你的APP轻松实现打印功能
1, 什么是AirPrint
其实就是将iOS(iphone,ipad)上的内容,使用支持AirPrint的打印机打印出来。打印过程无线控制, 非常方便。
2, 第一手资料
学习iOS, 第一手资料肯定非苹果官方文档莫属.here。 (我下面叙述的内容基本上是对文档的总结, 英语可以的建议直接看文档。。。)
3, Printer Simulator,使用打印模拟器进行测试
既然涉及打印功能,那么就需要有一台支持AirPrint 功能的打印机进行测试喽,你没有?没关系!苹果已经为我们准备好了模拟器。 这个模拟器在Xcode中没有, 需要自己到官网下载:下载Printer Simulator(需要先注册登录)
点击Printer Simulator即打开模拟打印机4、打印代码
协议UIPrintInteractionControllerDelegate
主要是用到了UIPrintInteractionController类,这是一个单列类。UIPrintInfo是配置打印信息,UISimpleTextPrintFormatter是设置页面范围。
UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
if (pic && [UIPrintInteractionControllercanPrintData:data]) {
pic.delegate=self;
UIPrintInfo*printInfo = [UIPrintInfoprintInfo];
printInfo.outputType=UIPrintInfoOutputGeneral;
// printInfo.jobName = [self.path lastPathComponent];
printInfo.duplex=UIPrintInfoDuplexLongEdge;
pic.printInfo= printInfo;
pic.showsPageRange=YES;
pic.printingItem= data;
void(^completionHandler)(UIPrintInteractionController*,BOOL,NSError*) =
^(UIPrintInteractionController*pic,BOOLcompleted,NSError*error) {
if(!completed && error)
NSLog(@"FAILED! due to error in domain %@ with error code %u",
error.domain, error.code);
};
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
[picpresentFromBarButtonItem:self.saveButtonanimated:YES
completionHandler:completionHandler];
}else{
[picpresentAnimated:YEScompletionHandler:completionHandler];
}
Info.plist文件中的第一项 Localization native development region(CFBundleDevelopmentRegion)的值设为 China(zh_CN);
选择后打印会生成一张图片模拟结束
网友评论