要求:手机通过蓝牙连接蓝牙打印机,在手机上点击‘打印’,打印机就打印出小票(小票就跟送外卖的那种)。
设备:BT58S热敏打印机,iPhone(iPod或iPad也可以)
开发过程中参考https://github.com/Haley-Wong/SEBLEPrinter这个demo实现打印,该demo已经将蓝牙的扫描外设,连接外设,扫描外设的服务和特征都封装好了,所以我就直接用他封装的开发。
//首先创建管理者
SEPrinterManager *_manager = [SEPrinterManager sharedInstance];
//然后调用扫描外设方法
[_managerstartScanPerpheralTimeout:0Success:^(NSArray *perpherals,BOOLisTimeout) {
//perpherals是扫描到的所有外设
}failure:^(SEScanErrorerror) {
}];
//扫描后就是连接外设
[[SEPrinterManager sharedInstance] connectPeripheral:peripheral completion:^(CBPeripheral *perpheral, NSError *error) {
if (error) {
//连接失败
} else {
//连接成功"
}
}];
//接下来就是设置要打印的数据
HLPrinter *printer = [[HLPrinter alloc] init];
[printer appendText:@"------------基本信息------------" alignment:HLTextAlignmentCenter bold:NO];
[printer appendTitle:@“单价” value:@"币种" fontSize:HLFontSizeTitleMiddle bold:NO];
[printer appendSeperatorLine];//分隔线
[printer appendNewLine];//新起一行
[printer appendImage:[UIImage imageNamed:@"imageName.png"] alignment:HLTextAlignmentCenter maxWidth:300];//添加打印图片
NSData *mainData = [printer getFinalData];//将打印的数据转化为NSData类型数据
//最后就是调用打印的方法
[[SEPrinterManager sharedInstance] sendPrintData:mainData completion:^(CBPeripheral *connectPerpheral, BOOL completion, NSString *error) {
//completion是否完成,error错误信息
}];
网友评论