ios开发蓝牙连接打印机如何前端实现购物车思路?求大神指点思路

利用porinterShare开发蓝牙打印机程序
&&&&目前网上教程与Demo介绍的都是蓝牙连接热敏打印机(pos机大小的打印机),如果想通过蓝牙连接日常所见到的打印机,进行打印,这些教程或Demo是做不到的。
&&&&目前Android的蓝牙并不支持BPP(Basic Printing Profile),所以在Android实现蓝牙打印,通过正常的手段是实现不了的。网上能够搜索的那些教程或demo我都试过了,Google Play上与打印相关的app,也都安装使用过,目前只有PrinterShare可以实现Word、PDF的打印。接下来的的内容就与这个软件有关。
&&&&由于Android本身并没有提供相关API,打印机厂商也没有提供Android的驱动,如果自己从头开始开发相关功能,会是一项非常浩大的工程。在经过一段时间的折腾与领导的不停催促后,我们决定使用PrinterShare来实现蓝牙打印功能,使用过支付宝的应该都知道,它会帮助我们安装一个快捷支付的APP,我采用的是相同的方法。我们的应用在使用打印功能时,首先判断PrinterShare是否安装,如果没有安装,就先安装该软件,如果已经安装,就调用PrinterShare的打印Activity,并且把文档的路径传递过去。
1.判断apk是否安装
public&static&boolean&appIsInstalled(Context&context,&String&pageName)&{
&&&&&&&&context.getPackageManager().getPackageInfo(pageName,&0);
&&&&&&&&return&
&&&&}&catch&(NameNotFoundException&e)&{
&&&&&&&&return&
Intent&intent&=&new&Intent(Intent.ACTION_VIEW);File&file&=&FileUtils.getAssetFileToCacheDir(activity,"xxx.apk");intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");activity.startActivity(intent);
3.把Asset下的apk拷贝到sdcard下 /Android/data/你的包名/cache 目录下
publicstatic&File&getAssetFileToCacheDir(Context&context,&String&fileName)&{
&&&&File&cacheDir&=&FileUtils.getCacheDir(context);
&&&&final&String&cachePath&=&cacheDir.getAbsolutePath()+&File.separator&+&fileN
&&&&InputStream&is&=&context.getAssets().open(fileName);
&&&&File&file&=&new&File(cachePath);
&&&&file.createNewFile();
&&&&FileOutputStream&fos&=&new&FileOutputStream(file);
&&&&byte[]&temp&=&newbyte[1024];
&&&&int&i&=&0;
&&&&while&((i&=&is.read(temp))&&&0)&{
&&&&&&fos.write(temp,&0,&i);
&&&&fos.close();
&&&&is.close();
&&&&return&
&&&&}&catch&(IOException&e)&{
&&&&&&e.printStackTrace();
&&&&return&&}
4.获取sdcard中的缓存目录
public&static&File&getCacheDir(Context&context)&{
&&String&APP_DIR_NAME&=&Environment.getExternalStorageDirectory().getAbsolutePath()&+&"/Android/data/";
&&File&dir&=&new&File(APP_DIR_NAME&+&context.getPackageName()&+&"/cache/");
&&if&(!dir.exists())&{
&&&&dir.mkdirs();
&&return&&}
5.调用printershare打印pdf
Intent&intent&=&new&Intent();ComponentName&comp&=&new&ComponentName("com.dynamixsoftware.printershare","com.dynamixsoftware.printershare.ActivityPrintPDF");intent&=&new&Intent();intent.setComponent(comp);intent.setAction("android.intent.action.VIEW");intent.setType("application/pdf");intent.setData(Uri.fromFile(pdf));startActivity(intent);
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区Pages: 1/6
主题 : 蓝牙连接打印机(餐厅打印小票用的)
级别: 侠客
可可豆: 312 CB
威望: 302 点
在线时间: 85(时)
发自: Web Page
来源于&&分类
蓝牙连接打印机(餐厅打印小票用的)&&&
&&&&&&&&正在做一个餐厅用的app,蓝牙连接打印机后可以直接打印小票,但是遇到一个问题:打印的格式无法控制,没法对齐。&&&&&&&&我想过用补空格的方式来对齐,但是空格和汉字占的大小是不同的,所以不行。&&&&&&&&有人实现做个这个功能吗?格式是怎么控制的?&&&& 我用的是 58mm 系列热敏打印机。
级别: 新手上路
可可豆: 2 CB
威望: 2 点
在线时间: 29(时)
发自: Web Page
-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error{&&&&if (error)&&&&{&&&&&&&&NSLog(@&Discovered characteristics for %@ with error: %@&, service.UUID, [error localizedDescription]);&&&&&&&&&&&&}&&&&for (CBCharacteristic * characteristic in service.characteristics)&&&&{&&&&&&&&NSString *str = @&&;&&&&&&&&for (int i = 0; i & [_todayArray count]; i++) {&&&&&&&&&&&&TodayOrder *today = [_todayArray objectAtIndex:i];&&&&&&&&&&&&NSString *num = today.&&&&&&&&&&&&NSString *total = today.&&&&&&&&&&&&NSString *time = today.&&&&&&&&&&&&NSString *string = [NSString stringWithFormat:@&\n订单号:%@\n成交额:%@\n成交时间:%@\n\n&, num, total,time ];&&&&&&&&&&&&&&&&&&&&&&&&str = [str stringByAppendingString:string];&&&&&&&&}&&&&&&&&NSLog(@&%@&,str);&&&&&&&&NSData *data =[str dataUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_)];&&&&&&&&//向外围设备写入数据&&&&&&&&[peripheral writeValue:data forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];&&&&&&&&&&&&&&&&//read&&&&&&&&//[testPeripheral readValueForCharacteristic:characteristic];&&&&&&&&NSLog(@&Found a Device Manufacturer Name Characteristic - Read manufacturer name&);&&&&&&&&&&&&}}不知道能不能帮到你
级别: 新手上路
UID: 89581
可可豆: 50 CB
威望: 50 点
在线时间: 126(时)
发自: Web Page
请问打印不全怎么解决的啊
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 13(时)
发自: Web Page
回 楼主(gaoyuqiang20) 的帖子
请问楼主怎么连接蓝牙打印机?我买了个蓝牙打印机,用ios里蓝牙那个自带的连接方法连接,提示connect ,但是打印机的 状态灯 就不亮是不是 需要蓝牙打印机的厂商提供什么东西?
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 0(时)
发自: Web Page
请问楼主是怎么实现的?
级别: 新手上路
可可豆: 18 CB
威望: 18 点
在线时间: 73(时)
发自: Web Page
回 楼主(gaoyuqiang20) 的帖子
我也跟楼主一样 可以链接到打印机&&就是格式 不好排版&&请问楼主是如何解决的
级别: 新手上路
可可豆: 13 CB
威望: 13 点
在线时间: 65(时)
发自: Web Page
我可以排版整齐了,但是不知道该怎么设置某几行字体的大小
级别: 新手上路
可可豆: 59 CB
威望: 56 点
在线时间: 362(时)
发自: Web Page
回 6楼(IO_S_OI) 的帖子
能发份demo吗,多谢。
级别: 新手上路
可可豆: 9 CB
威望: 8 点
在线时间: 121(时)
发自: Web Page
有没有demo?
级别: 新手上路
可可豆: 8 CB
威望: 8 点
在线时间: 166(时)
发自: Web Page
回 楼主(gaoyuqiang20) 的帖子
楼主有demo吗&&看一下我最近也在搞这一块&&完全没思路啊
Pages: 1/6
关注本帖(如果有新回复会站内信通知您)
iPhone5的分辨率? 正确答案:
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版ios蓝牙开发怎么快速获取当前手机连接的设备_百度知道苹果手机如何通过WIFI或者蓝牙连接打印机,求解!_百度知道后使用快捷导航没有帐号?
查看: 443|回复: 14
android蓝牙连接打印机
蓝牙连接打印机
本帖子中包含更多资源
才可以下载或查看,没有帐号?
谢谢支持~!:loveliness:&
感谢楼主~下载来先&
先顶后下,不错~!&
不错呀,谢谢楼主分享~!&
谢谢楼主无私分享~!&
感谢楼主~下载来先
谢谢楼主无私分享~!
不错呀,谢谢楼主分享~!
先顶后下,不错~!
感谢楼主~下载来先
谢谢支持~!
先顶后下,不错~!
谢谢支持~!
谢谢楼主无私分享~!
谢谢支持~!
已运行,但是在有蓝牙hp的打印机连不上,程序有问题
非常感谢你。可以。!
论坛资料为网友自由上传,与本论坛无关。
Powered by
关注,回复用户名送20rd币}

我要回帖

更多关于 求大神指点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信