传统的打印机配置复杂繁琐,又要接电脑又要装驱动,天怒人怨。不断有人探索,如何借助网络技术让打印变得简单,最终发展出了的云打印方案。
本地打印
起初,打印机通过数据线(USB、串口、并口等)接入电脑,电脑上安装对应的驱动。
打印机驱动有几个作用。一是确定打印机的型号、状态,显示纸张墨盒等耗材剩余量;二是处理打印样式,比如分页、配色彩色打印和黑白打印之类的;三是把要打印的内容,转化成打印机能够识别的页面描述语言(Page description language)。
局域网打印
有些打印机提供网线接口。有些打印机虽然没有网线接口,但也能用USB接口插到路由器上。借助网络打印协议,局域网内的电脑和手机就能发起打印了。
网络打印解决了多个设备共用打印机的问题。并且不再受限于数据线的长度,只要接入同一个局域网,手机也能通过wifi打印。
共享打印
局域网打印需要带USB口的路由器,或者带网口的打印机。微软也觉得这样不方便,于是在windows上提供了共享打印机的功能。原理非常简单,其中一台电脑连上打印机,其他电脑通过网络指挥它来打印就行了。
有的公司人多设备多,已经不在同一个局域网内了,但还想共享一个打印机。这也不难,来一台服务器接收所有人的打印请求,再把打印任务下发给某台具体的电脑去干活。
钉钉的“智能云打印”、飞书的“云打印”都是这种方案。不仅不用每台设备都装驱动,而且跨平台、跨网络、跨地域,还很方便做权限配置、记录打印内容,能做更多的事情。我们团队也申请了类似的专利,不过改成用手机来处理打印请求。
云打印盒子
共享打印已经解决了绝大部分问题,跟云打印没有用户体验上的差异。唯一的问题是,需要一部设备24小时开机待命。传输打印指令对硬件要求不高,用电脑来实现有点浪费。既然路由器也能实现局域网打印,那么干脆让路由器来接收打印任务,转发给打印机就行了嘛。我们团队也申请了路由器shell脚本实现云打印的专利,原理如下:
但是路由器毕竟不是专门用于打印的硬件,开发起来也诸多不便。那干脆开发一个专门用于打印的硬件吧!于是有了云打印盒子。淘宝搜一下“云打印盒子”,能找到几十个品牌的打印盒子。有的还提供多个usb接口,可以同时连多台打印机;有的可以插SIM卡,用4G网络打印;有的还能连蓝牙、插U盘等等。企业微信、钉钉也都有售卖自己的打印盒子。
如果自己没有硬件生产能力,找个代工厂做贴牌,出厂价格通常不到100块钱。有的厂商会顺带提供云服务;有的只做硬件定制和贴牌,需要自己开发部署云服务。如果要自己开发云打印的服务,第一个问题是,既然要做推送,那么必定有“push or pull”的选择。两种方案都有人做,各有优劣,此处不做讨论。定期跟服务端通信,服务端才能确认盒子的在线状态。
第二个问题是,传输的数据是什么格式?很多打印盒子都选择了PDF。因为PDF本身是一种面向打印的格式,样式、分页都是明确的。而且各种文档、网页、图片转PDF的方案都很成熟,开发难度不大。盒子通常是嵌入式设备,性能较低,处理格式转化的工作建议由服务端来做。
借助服务器提供的接口,不管是小程序、App还是PC客户端,只需要把打印内容发给云服务就行了,开发起来非常方便。
云打印机
对于本来就有打印机的客户,多买一个盒子就能用让古董打印机变成云打印。但那些本来就没有打印机的客户就要问了,能不能只买一个打印机就行了呢?厂商说这多简单,把盒子的功能整合进打印机不就行了嘛。不仅传统的打印机厂商开始推带云打印功能的型号,像华为这种刚进入打印行业的新势力,也把云打印作为核心卖点。
随着外卖行业的发展,近几年还有个很火的细分领域,云小票打印机。收到订单自动打印,店里再也不需要用手机或电脑来接单了。跟上述办公场景的方案相比,小票打印机使用ESC/POS文本指令,优化了速度、稳定性,放弃了样式的复杂性。为了让开发者不用直接写ESC/POS指令,降低开发门槛,各家云服务也都制定了XML格式的排版控制方案。以芯烨、佳博、飞鹅为代表的小票云打印机,殊途同归选择了类似的方案。
总结
网络技术的发展,改变了打印机难用的刻板印象。不用做复杂配置,不用安装驱动,不用电脑,能上网就能用,用户体验比传统打印机好很多。如有采购、定制云打印盒子、云打印机的需求,可以关注公众号【工程师加一】,私信与我联系。
本文未经许可禁止转载,如需转载关注微信公众号【工程师加一】并留言。