安卓手机连接IP100蓝牙打印机实现打印功能

来源:互联网 发布:网站源码腾讯 编辑:程序博客网 时间:2024/04/27 17:45





最近做的一个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;        }   

  这样一个用户填写表格实现打印的功能就这样的完成了 生气生气



后期发现用截图的这个工具并不是很方便, 因为对于纸张的大小跟文字图片摆放的位置还是有局限性的。 后来用到的还是绘图工具Canvas。创建一个内部类PrintView继承View然后声明Canvas、Paint跟Bitmap 。 在初始PaintView的时候同时也初始这些绘图工具 。   

由于我打印的表格都是用户输入的,所以同时创建了javabean类跟.txt文本用于保存用户输入的这些表格信息(PS:也可以创建sqlite用与保存本地) 。 在当用户点击打印的时候去解析是哪张表 来读取信息赋值给相应的javaBean。 然后就能生成图片, 进行分享打印图片咯





0 0
原创粉丝点击