主要功能:使用iPhone、PC连接同一个WiFi,iPhone 上App有打印功能,点击打印,实现打印文档功能。接下来我们就聊聊如何实现手机打印功能。
![](https://img.haomeiwen.com/i1518763/97456b0b3ee6d7b9.jpg)
硬件配置:
此处用了一个iPhone真机,Windows7系统电脑,任意品牌打印机,WiFi环境。
Windows电脑安装打印机驱动,网上自行百度安装打印机驱动,再下载最新版本的iTunes。
打印机设置为共享,步骤:开始->设备和打印机->鼠标选中打印机右键->打印机属性->共享,在共享这台打印机前面打对勾。
下载AirPrint服务安装配置软件包,点我下载,解压下载文件,以管理员身份运行“AirPrint_Installer.exe”,点击“Install AirPrint Service”按钮(如图)。
![](https://img.haomeiwen.com/i1518763/39da838c65e7a582.png)
还是解压的文件夹里,双击“AirPrint iOS 5 FIX-32Bit.reg” (如果是64位系统则运行“AirPrint iOS 5 FIX-64Bit.reg”)注册表文件。
回到AirPrint_Installer.exe安装步骤界面,在右侧“AirPrint Auth”下方选择“AirPrint”,“username”自动生成的,下面的“password”可以自己设置一个密码(该密码在手机端需要输入),下方的“Allow Blank Password(允许密码为空)”和“Enable Guest Account(允许来宾帐户)”选项不要打钩,点击“Update”按钮(如下图)。
![](https://img.haomeiwen.com/i1518763/efd2ae586f8e9aec.png)
将“Service Startup”选项设置为“Auto”,点击Start按钮,重启电脑。
电脑端配置就完成了。
上代码:
iOS4.2以后系统自带打印功能,这里做一个简单的打印功能。
首先,需要遵守协议:UIPrintInteractionControllerDelegate
// 打印按钮点击事件调用 UIPrintInteractionController
- (IBAction)printAction:(UIButton *)sender {
UIPrintInteractionController *printController = [UIPrintInteractionController sharedPrintController];
if(printController)
{
printController.delegate = self;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.jobName = @"Preview";
printInfo.orientation = UIPrintInfoOrientationPortrait;
printInfo.outputType = UIPrintInfoOutputGrayscale;
printController.showsPageRange = YES;
printController.printInfo = printInfo;
// self.printView 自己放的一个UIView的对象
printController.printingItem = [ViewController imageWithView:self.printView];
// 返回打印结果
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
if (!completed && error)
{
NSLog(@"PRINT FAILED: %@", [error description]);
}
};
[printController presentAnimated:YES completionHandler:completionHandler];
}
}
// airPrint只能打印图片或PDF文件,故而此处返回一个图片
+ (UIImage *) imageWithView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
demo完成后在真机上运行,手机和PC连接同一个WiFi环境,点击App里的打印按钮,将跳转到打印选项里,此处会让你输入账号和密码(我在此处遇到坑,刚开始配的Guest的服务项,用户名和密码一直输入不正确,坑啊!),输入之前配置的“AirPrint Auth”的用户名“AirPrint”和密码就可以了。
经验不足,如有错误还请各位大神指正。
网友评论