感谢分享的小伙伴@a3280028
原文链接:http://blog.csdn.net/a3280028/article/details/51245510
随着移动互联网发展,很多工作可能会使用移动设备进行办公。那么使用打印机就会变的频繁。
现在打印 一般会分为以下几个类型 蓝牙打印,网络打印,驱动打印(如果还有其他打印方式 可以评论提示下)
蓝牙打印和网络打印 使用比较多,当然驱动打印也是有的。 但是驱动这块本人没研究过。所以主要讲述蓝牙和网络 打印
蓝牙打印
1. 搜索蓝牙设备
2. 和蓝牙设备建立连接
3.如果连接成功 则打印相应内容 和 命令(可以控制字体大小 等等一 些指令)
4.还可记住该台设备的蓝牙mac,下次可直接连接该设备进行打印
先来分享下 打印命令(对大部分机器还是适用,可能部分厂商有不同的命令。可以先用这个命令试试,不行找厂商要)
下面写了个蓝牙连接的demo,需要用到,参考下:
以上是基本的连接和打印内容、打印命令。
下面分享记录蓝牙的mac,以及根据蓝牙mac连接设备
很简单有木有,也就是下次我们如果还需要连接上次连接过的设备就不需要再进行搜索了。 直接将保持的地址和名称拿出来连接,从而提高了用户体验,当然需要进行一系列判断。
从以上蓝牙连接来看,存在一点问题 :
1.蓝牙连接的时候没使用线程去连接(应该是耗时操作,大家不要学我啊...自己弄个线程和handler)。
2.如果打印比较多的内容是不是有点蛋疼啊。每次需要切换命令其实 大家可以封装嘛。(提供个思路 如果有模板或者内容很多,可以写个base 基类,提供一些公用的方法呀。比如:打印标题居中、打印分割符号 计算字节数等等,尽性发挥自己的想象,打造自己的模板框架)
蓝牙说了这么多 再给大家分享点小东西,比如现在市场上一般的打印小票都是 58mm和 80mm, 58mm一行的字节是32 ,80mm的字节是48,当然还有一些其他用途的打印尺寸,如标签等等...
网络打印
顾名思义就是利用网络连接打印机,打印我们所需的信息。那么网络这块毫无疑问用的socket。上面蓝牙也有个BluetoothSocket,其实看源码可以知道,BluetoothSocket 就是对socket的一个封装,BluetoothSocket是蓝牙连接的专用的。
代码:
网络打印其实很简单有木有,简单粗暴,只需要知道ip和端口(打印机端口如果没做说明 一般情况下为9100,如果特殊,可以看看说明书或者直接找生产厂家。至于打印内容也可以自行封装,另外用handler 进行对状态的一些维护,友好的提示用户。)
蓝牙打印
可以同时连接多个打印机
(一般情况下连2-3个没什么问题,如果多了 机器可能撑不住而直接崩溃 ,这和机器的硬件有关,当然一般情况下也不会连接那么多)
网络打印机
基本也是一样 ,可以用线程维护或者用service。