本文主要介绍关于Android打印相关的一些思路
谷歌操作协同在Android4.4之前并没有获得本地打印机的支持,换句话说Android 在4.4之前几乎很难实现打印。从手机或者平板上打印文档、图像或者其他内容都得下载第三方打印工具。
于是Mopria在2013横空出世,并于2014年2月正式推出了移动设备,打印机和配件的认证流程.Mopria联盟定期开展认证测试活动,联盟的许多公司都获得了Mopria认证。
Mopria联盟成员包括以下打印机和打印配件制造商:Brother,Canon,Fuji Xerox,HP,Konica Minolta,Kyocera,Lenovo,Lexmark,Marvell,Oki Data Corporation,Pantum,Ricoh,Samsung,Seiko Epson和Xerox。但是遗憾的是这些品牌的支持度有限,并且把移动端打印当做买点,一些基础打印机并没有提供支持。
公司最近要我调研移动端打印方案
目前调查实现途径,大概有以下思路:
- 通过蓝牙打印 https://www.jianshu.com/p/ec0cdcd62595
- 通过wifi打印,传统的socket通信,https://www.cnblogs.com/LIANQQ/p/4587637.html
- 使用第三方插件如:mopria print service;https://blog.csdn.net/tangxl2008008/article/details/78415999
- PC端集成客户端,开启指定端口,Android 端只需要负责搜索指定ip+指定端口是否能够连接通信,就OK了
以上前两种比第三种复杂一点
But我的情况感觉复杂很多,目前公司是打算提供服务给别人用,又没有指定打印机,市场上的很多打印机都不支持无线、蓝牙打印功能。当然,最基本的是要支持网络打印的功能。所以基于这种情况我们最好就使用第二种方案来解决打印问题。而第二种方案有打印指令适配的问题。
所以最终采用了第四种方法。一个半月后
经过一个半月的调研,代码编写,第四种方案终于走通了,Android 端搜索指定ip+端口号的方式来进行通信,由于项目是采用weex搭建,我这边通信的方式也就是采用weexsocket模块的内容进行通信。PC端另有大神集成调用各种打印机的打印驱动,目前这个方法应该是万能的,不管什么类型打印机都能支持。
PC端的原理:是调window的打印驱动,如果对应打印机未装对应打印驱动,客户端会提示报错。
Ending
一个万能的Android 连接打印机程序就这样诞生了。
网友评论