最近做的一个Android demo 。 要求用手机蓝牙连接打印机实现打印功能。 先开始玩的是佳能IP100的打印机, 发现这
款打印机蓝牙只能实现打印图片功能,文档什么的要么接受了没反应,要么就乱码。 后来又玩了下佳能IP110的, 这款
机型实现的是wifi无线打印 。 由于用户需求最后研究了IP100蓝牙打印 。 网上搜了关于蓝牙打印的东西不多, 其中有个
看起来挺不错了, 但他好像是热敏打印机,在我这儿没法使用 连接: 热敏打印机 ; 最后自己用了一个比较偷懒快捷
的方式把测试Demo的功能实现了。
1.首先要设置打印机连接蓝牙后出来的尺寸 我用的纸张是A4的所以选择的就是普通A4纸张
2. 通过Android自带的分享功能 把图片发送到蓝牙打印机
String photoUri= Environment.getExternalStorageDirectory()+"/CheckAPP/Screen.jpg"; public void SharePhoto(String photoUri,final Activity activity) { Intent shareIntent = new Intent(Intent.ACTION_SEND); File file = new File(photoUri); shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); shareIntent.setType("image/jpeg"); startActivity(Intent.createChooser(shareIntent, activity.getTitle())); }
这个打印文件必须为Android内已经有的
3. 由于我做的功能是将用户填写的表格打印出来,所以我就又新建了一个专门用来打印的界面
调用截屏的功能,将图片保存到手机sd卡中
/** * 截屏方法 * @return */ private Bitmap shot() { View view = getWindow().getDecorView(); Display display = this.getWindowManager().getDefaultDisplay(); view.layout(0, 0, display.getWidth(), display.getHeight()); view.setDrawingCacheEnabled(true);//允许当前窗口保存缓存信息,这样getDrawingCache()方法才会返回一个Bitmap ScreenBmp = Bitmap.createBitmap(view.getDrawingCache()); return ScreenBmp; }
这样一个用户填写表格实现打印的功能就这样的完成了