技术领域
[0001] 本申请涉及打印领域,尤指一种打印方法。背景技术:
[0002] 从Android4.4开始,Android系统就集成了打印图片和文档的服务,Android8.0开始支持mopria打印服务,但是,目前支持mopria打印服务的打印机基本上都是普通打印机,常见的就是市面上打印照片和打印文档的打印机,对于工业打印机,比如标签打印机和小票打印机,mopria往往就没法支持,因为打印机厂家去适配mopria打印服务需要较高的成本。对于物联网行业的客户,其Android版的内部管理软件在发起打印的时候,操作就很繁琐了,因为他们使用的打印机通常都是mopria打印服务不支持的;更有一些客户的内部管理软件,不是基于Android的。物联网客户的另一个打印需求是,他们的打印机种类繁多,有的是打印标签的打印机,有的是打印小票的打印机,并且根据标签的形状、尺寸不同,还有不同的标签打印机,选择打印机的时候眼花缭乱。
[0003] 本申请针对以上问题,提供一种新的打印方法,采用新的方法和技术手段以解决这些问题。
具体实施方式
[0024] 为便于更好的理解本申请的目的、结构、特征以及功效等,现结合附图和具体实施方式对本申请作进一步说明。
[0025] 本申请的打印系统和打印方法,试图去解决打印东西时的选择困难症。比如我们打印一份文件时,查看电脑连接的打印机2,页面上会出现一个打印机列表,用户需要选择其中的一台打印机2进行打印。在办公室里通常只有一两种打印机2,比如喷墨打印机2、针式打印机2等,还比较容易弄清楚应该选择哪台打印机2进行打印,因为办公室里经常需要打印的是A4尺寸的文件,每一台打印机2的功能基本都可以支持A4纸打印,随便选一台打印机2都可以打印出来;而对于一些后仓环境,打印机2种类繁多,每一台打印机2都要安装对应的驱动就很麻烦,并且选错了打印机2,要打印的内容可能就打印不出来,或者打印出来了,但是格式有问题,比如有时候要打印条码,有时候要打印单据,有时候又要打印小票,甚至有多种形状/尺寸的条码或多种形状/尺寸的单据要打印,这时候就必须要选择特定的打印机2。
[0026] 基于此,本申请实施例公开了一种打印系统,包括一个或多个用户终端1,以及多台打印机2。多个用户终端1的情形可以由一个用户终端1简单推演出来,下面详述一个用户终端1的情形。
[0027] 一个所述用户终端1通信连接于多台打印机2,通信连接包括有线连接和无线连接,有线连接可以包括串口连接、USB连接等,无线连接包括蓝牙连接、wifi连接等。所述用户终端1可以与多台打印机2都通过有线连接,也可以都通过无线连接,甚至所述用户终端1与一部分打印机2通过有线连接而与另一部分打印机2通过无线连接。以所述用户终端1与多台打印机2都通过无线连接为例,所述用户终端1与多台打印机2处于相同的局域网,所述用户终端1通过无线模块与多台打印机2进行通信。所述用户终端1上安装了打印服务4,所述打印服务4预先集成了多个打印机2的指令集,比如EPSON公司开发的ESC指令集、CPCL指令集、TSPL指令集等,根据需要,所述打印服务4也可以集成其它打印机2厂商自己开发的指令集。
[0028] 当一台打印机2初次与所述用户终端1通信连接时,所述打印服务4获取所述打印机2的信息,以确定它是什么类型的打印机2,或者确定它可以打印什么内容,比如确定它是普通喷墨打印机2或标签打印机2或小票打印机2等,或者确定它可以打印什么尺寸的文件、可以打印什么格式/尺寸的条码或小票等,甚至获取所述打印机2的指令集等,并将新的指令集集成于所述打印服务4的指令适配模块。
[0029] 一些打印机2可能没有通用的型号,当它初次与所述用户终端1通信连接时,用户终端1无法直接获取所述打印机2的信息,这时需要用户手动查找所述打印机2的指令集,并集成于所述打印服务4。
[0030] 经过以上步骤,所述用户终端1的打印服务4中就集成了工作环境中所有打印机2的指令集。
[0031] 当应用通过所述用户终端1发起打印时,应用首先与所述打印服务4通信。应用可以是所述用户终端1上安装的原生应用程序5,也可以是通过所述用户终端1打开的网络应用程序6或其它应用程序。原生应用程序5包括所述用户终端1上安装的相册、文件阅读器等;网络应用程序6包括HTML5网站等。原生应用程序5和网络应用程序6通常是通过不同的接口与所述打印服务4通信,比如Android系统的原生应用程序5通过AIDL与打印服务4通信,而HTML5网站通过HTTP接口与打印服务4通信。
[0032] 打印服务4进一步分析应用发起的打印请求,并对打印内容进行参数分析,筛选出与所述用户终端1连接的多台打印机2中与打印内容参数匹配的至少一台打印机2。
[0033] 应用的打印请求可能是PDF、图片或指令等,如果是PDF,所述打印服务4首先将PDF转化成图片,然后进一步转化成对应的指令;如果是图片,则直接转化成指令,如果是指令则无需转化。
[0034] 所述打印服务4进一步对指令进行分析,解析出长度、宽度或长宽比例等参数。
[0035] 一些实施例中,所述打印服务4可以集成尺寸识别软件,当打印请求是PDF或图片时,所述打印服务4可以通过尺寸识别软件获取PDF(或PDF转化的图片)或图片的长度、宽度或长宽比例等参数。
[0036] 所述打印服务4获取打印内容的长度、宽度或长宽比例等参数之后,将会进一步筛选出与所述用户终端1连接的多台打印机2中与打印内容参数匹配的一台或几台打印机2,具体来说,所述打印服务4在获取打印内容的参数之后,与集成于打印服务4的多台打印机2的指令集比对,筛选出匹配的打印机2,当打印内容的长度、宽度或长宽比例等参数位于某一打印机2预先配置的比例阈值范围内,该打印机2为相匹配的打印机2;进一步,打印服务4可根据打印内容的长度、宽度或长宽比,判断打印内容为A4尺寸的PDF或图片,进而筛选出支持A4纸打印的打印机2;或者判断打印内容的宽度参数与小票打印机2匹配,筛选出小票打印机2,因为小票的宽度是固定的,而长度是不固定的,因此可以设定打印小票的打印请求仅包括宽度参数,而不包括长度参数,打印服务4即可确定打印内容是小票,进而筛选小票打印机2;或者判断打印内容的长宽比例及宽度参数与标签打印机2匹配,筛选出标签打印机2等。总之,根据各自打印内容的参数的不同,所述打印服务4即可筛选出与打印内容相匹配的打印机2。
[0037] 进一步,所述打印服务4将筛选出的打印机2生成一个打印机列表,如果打印机列表只有一台打印机2,则打印服务4直接向该打印机2发送打印指令,打印机2自动打印打印内容;如果打印机列表包括多台打印机2,则打印服务4将会对打印机列表里的多台打印机2进行优先级排序:比如根据打印机2的使用频率高低排序,打印相同参数的打印内容频率越高的打印机2,优先级越高;或者根据打印机2距离用户终端1的距离远近,对打印机2进行优先级排序,距离越近的打印机2优先级越高;或者根据打印机2的繁忙程度进行优先级排序,等待打印的任务越少的打印机2优先级越高;其它实施例中,也可以根据其它参量对打印机2进行优先级排序。之后,打印服务4将打印内容转化为与最高优先级的打印机2配置的指令集相对应的打印指令,进一步将打印指令发送至优先级最高的打印机2。由此实现了,当应用发起打印之后,打印过程将自动进行,打印服务4自动将打印指令发送至优先级最高的打印机2,无需用户手动选择。
[0038] 一种实施例中,打印服务4在生成打印机列表之后,可用户手动选择打印机2,相对于现有技术中由用户自行去分辨匹配的打印机2,本实施例中由打印服务4自动生成打印机列表,筛选出了匹配的打印机2,也已经很便捷了。
[0039] 需要指出的是,不同的用户终端1的打印服务4,只对各自的打印数据进行统计,所以即使不同的用户终端1打印相同的内容,不同用户终端1上的打印服务4对多台打印机2的优先级排序也可能是不同的。
[0040] 一种实施例中,所述打印系统包括后台服务器3/云服务器,打印系统中所有用户终端1的打印数据均上传至后台服务器3/云服务器,每个用户终端1可根据大数据对打印机2进行优先级排序。
[0041] 如图所示,为本申请实施例公开的一种打印方法的流程图,包括以下步骤:
[0042] S1:用户终端1预先连接多台打印机2。
[0043] 用户终端1与打印机2之间的连接包括有线连接和无线连接,有线连接可以包括串口连接、USB连接等,无线连接包括蓝牙连接、wifi连接等。所述用户终端1可以与多台打印机2都通过有线连接,也可以都通过无线连接,甚至所述用户终端1与一部分打印机2通过有线连接而与另一部分打印机2通过无线连接。本实施例中,所述用户终端1与多台打印机2处于同一个局域网,通过网络连接。
[0044] S2:应用通过用户终端1的打印服务4发起打印请求。
[0045] 应用可以是所述用户终端1上安装的原生应用程序5,也可以是通过所述用户终端1打开的网络应用程序6或其它应用程序。原生应用程序5包括所述用户终端1上安装的相册、文件阅读器等;网络应用程序6包括HTML5网站等。原生应用程序5和网络应用程序6通常是通过不同的接口与所述打印服务4通信,比如Android系统的原生应用程序5通过AIDL与打印服务4通信,而HTML5网站通过HTTP接口与打印服务4通信。
[0046] S3:打印服务4对打印请求进行参数分析。
[0047] 应用的打印请求可能是PDF、图片或指令等,如果是PDF,所述打印服务4首先将PDF转化成图片,然后进一步转化成对应的指令;如果是图片,则直接转化成指令,如果是指令则无需转化。
[0048] 所述打印服务4进一步对指令进行分析,解析出长度、宽度或长宽比例等参数。
[0049] 一些实施例中,所述打印服务4可以集成尺寸识别软件,当打印请求是PDF或图片时,所述打印服务4可以通过尺寸识别软件获取PDF(或PDF转化的图片)或图片的长度、宽度或长宽比例等参数。
[0050] S4:根据参数筛选出多台打印机2中相匹配的至少一台打印机2。
[0051] 所述打印服务4获取打印内容的长度、宽度或长宽比例等参数之后,将会进一步筛选出与所述用户终端1连接的多台打印机2中与打印内容参数匹配的一台或几台打印机2,具体来说,所述打印服务4在获取打印内容的参数之后,与集成于打印服务4的多台打印机2的指令集比对,筛选出匹配的打印机2,当打印内容的长度、宽度或长宽比例等参数位于某一打印机2预先配置的比例阈值范围内,该打印机2为相匹配的打印机2;进一步,打印服务4可根据打印内容的长度、宽度或长宽比,判断打印内容为A4尺寸的PDF或图片,进而筛选出支持A4纸打印的打印机2;或者判断打印内容的宽度参数与小票打印机2匹配,筛选出小票打印机2,因为小票的宽度是固定的,而长度是不固定的,因此可以设定打印小票的打印请求仅包括宽度参数,而不包括长度参数,打印服务4即可确定打印内容是小票,进而筛选小票打印机2;或者判断打印内容的长宽比例及宽度参数与标签打印机2匹配,筛选出标签打印机2等。总之,根据各自打印内容的参数的不同,所述打印服务4即可筛选出与打印内容相匹配的打印机2。
[0052] 进一步,所述打印服务4将筛选出的打印机2生成一个打印机列表,如果打印机列表只有一台打印机2,则打印服务4直接向该打印机2发送打印指令;如果打印机列表包括多台打印机2,则打印服务4将会对打印机列表里的多台打印机2进行优先级排序:比如根据打印机2的使用频率高低排序,打印相同参数的打印内容频率越高的打印机2,优先级越高;或者根据打印机2距离用户终端1的距离远近,对打印机2进行优先级排序,距离越近的打印机2优先级越高;或者根据打印机2的繁忙程度进行优先级排序,等待打印的任务越少的打印机2优先级越高;其它实施例中,也可以根据其它参量对打印机2进行优先级排序。之后,打印服务4将打印内容转化为与最高优先级的打印机2配置的指令集相对应的打印指令,进一步将打印指令发送至优先级最高的打印机2。由此实现了,当应用发起打印之后,打印过程将自动进行,打印服务4自动将打印指令发送至优先级最高的打印机2,无需用户手动选择。
[0053] 本申请的打印方法具有以下有益效果:
[0054] 本申请的打印系统和打印方法,通过打印服务4对打印请求的参数进行分析,并根据参数筛选出相匹配的打印机2,使打印变得简单和智能。
[0055] 以上详细说明仅为本申请之较佳实施例的说明,非因此局限本申请之专利范围,所以,凡运用本创作说明书及图示内容所为之等效技术变化,均包含于本创作之专利范围内。