一种打印状态判断方法及系统与流程
未命名
08-27
阅读:106
评论:0
1.本发明涉及打印技术领域,尤其涉及一种打印状态判断方法及系统。
背景技术:
2.lodop插件是目前功能比较强大、使用人数比较多的一款打印控件。该插件中没有提供一种有效的方式来获取打印机的打印成功状态。控件官方目前提供了两种判断打印成功的实现方式:
3.第一种实现方式是通过“状态码包含128”且“job已不在队列”来判断,这种实现方式可能会出现打印机输出完毕状态码不变成128,而一直等于20;
4.第二种实现方式是仅通过“job不在队列”来判断,这种实现方式可能会出现打印机在某些失败状态下(比如卡纸),也会将该打印任务从打印队列中删除。
5.现有技术中,不同的打印机的返回状态值(code)差别较大,导致不同打印驱动对于打印状态的反馈非常混乱,没有针对所有型号的打印机都有效的打印成功与否的统一规范。
6.通过在插件中枚举出所有型号打印机的成功状态值可以在一定程度解决上述问题,但这种枚举的方式实施较为困难,且也不利于未来的扩展。
技术实现要素:
7.为了解决以上技术问题,本发明提供了一种打印状态判断方法及系统。
8.本发明所解决的技术问题可以采用以下技术方案实现:
9.一种打印状态判断方法,包括:
10.步骤s1,在当前连接的打印设备使用的驱动版本不存在对应的成功状态值时,获取所述打印设备执行打印一预定数量次数后反馈的状态值,形成一状态数据集合,并将所述状态数据集合中出现次数最多的所述状态值作为所述驱动版本对应的所述成功状态值;
11.步骤s2,获取所述打印设备执行一打印指令后反馈的当前状态值,根据所述当前状态值与所述成功状态值判断当前打印是否打印成功。
12.优选地,还包括预先提供的一状态数据库,所述状态数据库用于存储有所述打印设备对应的各种所述驱动版本以及所述驱动版本对应的所述成功状态值;
13.所述步骤s1之前,还包括:
14.步骤s0,获取当前连接的所述打印设备的所述驱动版本,并判断所述状态数据库中是否存在所述驱动版本对应的所述成功状态值:
15.若存在,则直接从所述状态数据库中获取所述成功状态值,并进入所述步骤s2;
16.若不存在,则进入所述步骤s1。
17.优选地,所述步骤s0中,所述驱动版本基于一lodop插件获取得到。
18.优选地,所述步骤s1之后,所述步骤s2之前还包括:
19.将所述步骤s1统计确定的所述驱动版本及对应的所述成功状态值存储至所述状
态数据库中。
20.优选地,所述步骤s1包括:
21.步骤s11,获取所述驱动版本的打印日志,并判断所述打印日志记录的所述状态值是否超过所述预定数量次数;
22.步骤s12,在超过所述预定数量次数时将记录的所述状态值中出现次数最多的所述状态值作为所述驱动版本对应的所述成功状态值。
23.优选地,所述步骤s1之后,还包括:
24.在接收到用户反馈的初始化指令时,进行重新初始化操作。
25.优选地,所述步骤s2之后,还包括:
26.在使用的所述驱动版本变化后,重新执行所述步骤s1-s2。
27.优选地,还包括:
28.提供一操作界面,以供用户在所述操作界面中输入所述驱动版本对应的所述成功状态值。
29.优选地,所述预定数量次数至少包括10次。
30.本发明还提供一种打印状态判断系统,用于实施如上述的打印状态判断方法,包括:
31.第一获取单元,用于在当前连接的打印设备使用的驱动版本不存在对应的成功状态值时,获取所述打印设备执行打印一预定数量次数后反馈的状态值,形成一状态数据集合;
32.统计单元,连接所述第一获取单元,用于将所述状态数据集合中出现次数最多的所述状态值作为所述驱动版本对应的所述成功状态值;
33.第二获取单元,连接所述统计单元,用于获取所述打印设备执行一打印指令后反馈的当前状态值;
34.判断单元,分别连接所述统计单元和所述第二获取单元,根据所述当前状态值与所述成功状态值判断当前打印是否打印成功。
35.本发明技术方案的优点或有益效果在于:
36.本发明通过统计学的方式,将出现次数最多的状态值作为驱动版本对应的成功状态值,来指示打印设备是否打印成功,无需更换打印控件,在一定打印次数后即可实现精准获取打印成功的状态,且扩展性较强。
附图说明
37.图1为本发明的较佳实施例中,打印状态判断方法的流程示意图;
38.图2为本发明的较佳实施例中,打印状态判断系统具体实施的示意图;
39.图3为本发明的较佳实施例中,步骤s1具体实施的示意图;
40.图4为本发明的较佳实施例中,打印状态判断系统的结构框图。
具体实施方式
41.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
43.在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
44.下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
45.参见图1,本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种打印状态判断方法,包括:
46.步骤s1,在当前连接的打印设备使用的驱动版本不存在对应的成功状态值时,获取打印设备执行打印一预定数量次数后反馈的状态值,形成一状态数据集合,并将状态数据集合中出现次数最多的状态值作为驱动版本对应的成功状态值;
47.步骤s2,获取打印设备执行一打印指令后反馈的当前状态值,根据当前状态值与成功状态值判断当前打印是否打印成功。
48.具体的,在本实施例中,在当前的驱动版本对应的成功状态值不存在,即未确定时,通过获取一定数量的状态值(code),该状态值为通过打印机驱动向打印设备发送打印指令,然后打印设备响应于该打印指令返回的code值;然后通过统计学的方式,将出现次数最多的状态值作为驱动版本对应的成功状态值,来指示打印设备是否打印成功,无需更换打印控件,在一定打印次数后即可实现精准获取打印成功的状态,且扩展性较强。
49.作为优选的实施方式,其中,还包括预先提供的一状态数据库,状态数据库用于存储有打印设备对应的各种驱动版本以及驱动版本对应的成功状态值。
50.作为优选的实施方式,其中,如图2所示,步骤s1之前,还包括:
51.步骤s0,获取当前连接的打印设备的驱动版本,并判断状态数据库中是否存在驱动版本对应的成功状态值:
52.若存在,则直接从状态数据库中获取成功状态值,并进入步骤s2;
53.若不存在,则进入步骤s1。
54.具体的,在本实施例中,通过设置状态数据库存储各驱动版本对应的成功状态值,若状态数据库中存在相应的驱动版本且存在该驱动版本对应的成功状态值,即表示该使用的驱动版本的成功状态值已经被确定过了;若状态数据库中不存在相应的驱动版本、或者存在相应的驱动版本但不存在对应的成功状态值,即表示该使用的驱动版本的成功状态值未被确定过,需要通过上述统计学的方式进行确认。
55.进一步的,在确定好当前使用的驱动版本对应的成功状态值后,在后续使用相应驱动版本执行打印时,直接比对反馈的状态值和成功状态值是否一致即可实现当前打印的状态判断。当反馈的状态值和成功状态值一致,则表示打印成功;若反馈的状态值和成功状态值不一致,则表示打印失败。
56.进一步的,同一驱动版本对应的成功状态值相同;不同驱动版本对应的成功状态值相同或不相同,因此,在驱动版本发生变化后,需要重新确定变化后的驱动版本对应的成功状态值。
57.作为优选的实施方式,其中,步骤s0中,驱动版本基于一lodop插件获取得到。
58.具体的,lodop打印控件是一个十分强大的打印机空间安装工具。lodop web打印控件即是web打印控件也是打印编程接口,是javascript的扩展,也是报表条码及图表打印工具,一个web编程小工具,是web开发必备的辅助工具。在本实施例中,可通过lodop插件获取使用的驱动版本,以便于后续判断是否存在相应成功状态值。
59.作为优选的实施方式,其中,步骤s2之前还包括:
60.将步骤s1统计确定的驱动版本及对应的成功状态值存储至状态数据库中。
61.具体的,在本实施例中,通过将已使用的驱动版本基于统计学确定好的成功状态值存储到状态数据库中,在后续使用相应驱动版本执行打印时,可以直接从状态数据库中获取达到该驱动版本对应的成功状态值,然后进行比对判断打印状态,通过数据库时实现状态值的自动化共享管理,无需重复统计。
62.作为优选的实施方式,其中,如图3所示,步骤s1包括:
63.步骤s11,获取驱动版本的打印日志,并判断打印日志记录的状态值是否超过预定数量次数;
64.步骤s12,在超过预定数量次数时将记录的状态值中出现次数最多的状态值作为驱动版本对应的成功状态值。
65.在一个较优的实施例中,上述预定数量次数反馈的状态值的获取步骤可通过打印设备的打印日志获取得到,即通过查询打印日志的方式,筛选当前使用并需要确定成功状态值的驱动版本对应返回的code值。若打印日志记录的状态值超过预定数量次数,即进行统计,确定出现次数最多的状态值,无需更换打印控件,在一定打印次数后即可实现精准获取打印成功的状态。
66.进一步的,若打印日志记录的状态值未超过预定数量次数,则不进行统计。
67.作为优选的实施方式,其中,预定数量次数至少包括10次。
68.具体的,在实际打印过程中,一般在未出现故障的情况下都能打印成功。但为了避免偶发性故障产生统计错误的情况,统计数量不宜过少,因此,预定数量次数一般设置为至少包括10次。进一步的,该预定数量次数优选设置为10次,一般统计到10次即可收集到足够的数据,进行相对准确的判断,以提高统计的效率。
69.作为优选的实施方式,其中,步骤s1之后,还包括:
70.在接收到用户反馈的初始化指令时,进行重新初始化操作。
71.具体的,考虑到若打印设备出现问题而导致统计的一定打印次数中绝大部分是打印失败的特殊情况。在本实施例中,在特殊情况下,用户可反馈某个打印驱动版本统计确定的成功状态值是错误的,可支持系统重新初始化,即删掉历史打印记录,进行初始化,重新进行统计,避免由于设备故障而导致统计的成功状态值是错误的。
72.作为优选的实施方式,其中,步骤s2之后,还包括:
73.在使用的驱动版本变化后,重新执行步骤s1-s2。
74.具体的,考虑到同一驱动版本对应的成功状态值是相同的,而不同驱动版本对应的成功状态值可能是相同的,也可能是不同的,在本实施例中,在驱动版本变化,若该驱动版本对应的成功状态值尚未被统计确定过,则重新采用统计学的方式确定。
75.进一步的,若该驱动版本对应的成功状态值已经被统计确定过,则直接获取之前统计确定的成功状态值,即可实现打印状态的判断。
76.作为优选的实施方式,其中,还包括:
77.提供一操作界面,以供用户在操作界面中输入驱动版本对应的成功状态值。
78.具体的,在本实施例中,还可支持手工指定某一个驱动版本的成功状态值,由于同一驱动版本对应的成功状态值是相同的,因此,用户可进行一次成功的打印,然后在后台(数据库)查看该次打印的返回值以确定打印成功的返回code,输入至该驱动版本对应的成功状态值,避免由于设备故障而导致统计的成功状态值一直是错误的。
79.本发明还提供一种打印状态判断系统,用于实施如上述的打印状态判断方法,如图4所示,包括:
80.第一获取单元1,用于在当前连接的打印设备使用的驱动版本不存在对应的成功状态值时,获取打印设备执行打印一预定数量次数后反馈的状态值,形成一状态数据集合;
81.统计单元2,连接第一获取单元1,用于将状态数据集合中出现次数最多的状态值作为驱动版本对应的成功状态值;
82.第二获取单元3,连接统计单元2,用于获取打印设备执行一打印指令后反馈的当前状态值;
83.判断单元4,分别连接统计单元2和第二获取单元3,根据当前状态值与成功状态值判断当前打印是否打印成功。
84.于上述较佳的实施例中,本发明系统基于server端实现,后期可以开放接口供其他服务使用,具有相对较好的通用性。
85.进一步的,基于lodop插件获取打印机驱动版本,预先使用lodop官方提供的不严谨的方案(参见背景技术所示的两种实现方式)进行打印的同时采集该驱动每次打印结束后返回的状态值,一定打印次数(默认10次)后,系统通过统计学的方式,将出现次数最多的状态值作为驱动版本对应的成功状态值,然后对该驱动版本的打印设备进行自动校正,即将打印成功的判断方式从控件本身提供的有缺陷的两种方式切换为统计得到的返回最多的状态值作为成功的打印状态。
86.进一步的,基于统计的打印校正无需要手工干预的,可以减少一定的人力。
87.在一个典型带打印的业务系统中,可以将本系统后端服务作为整个业务系统的一部分,也可以单独部署成一个独立的服务;其打印的流程包括以下步骤:
88.a、前端通过lodop插件获取打印设备的驱动版本;
89.b、将获取到的驱动版本通过https协议发送给后端服务,以判断该驱动版本的成功状态值是否已经被确认过;
90.c、若该驱动版本的成功状态值被确认过,则返回该成功状态值,供前端用于此次打印返回的code进行判断;
91.d、如果该驱动版本的成功状态值没有被确认过,则采用打印队列中出队作为打印成功的标志,并将此次打印的状态值和对应的打印驱动版本发送给后端进行记录;
92.e、后端记录一次状态值后,都会进行一次判断,若该驱动版本的打印日志记录超过了10条,则取十次打印中出现最多的状态值作为该驱动版本的成功状态值,并标记该驱动版本的成功状态值为已确认;
93.f、下一次该驱动版本的打印,后端将会返回已确认过的打印成功的状态值供前端比较。
94.采用上述技术方案的优点或有益效果在于:本发明通过统计学的方式,将出现次数最多的状态值作为驱动版本对应的成功状态值,来指示打印设备是否打印成功,无需更换打印控件,在一定打印次数后即可实现精准获取打印成功的状态,且扩展性较强。
95.以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
技术特征:
1.一种打印状态判断方法,其特征在于,包括:步骤s1,在当前连接的打印设备使用的驱动版本不存在对应的成功状态值时,获取所述打印设备执行打印一预定数量次数后反馈的状态值,形成一状态数据集合,并将所述状态数据集合中出现次数最多的所述状态值作为所述驱动版本对应的所述成功状态值;步骤s2,获取所述打印设备执行一打印指令后反馈的当前状态值,根据所述当前状态值与所述成功状态值判断当前打印是否打印成功。2.根据权利要求1所述的打印状态判断方法,其特征在于,还包括预先提供的一状态数据库,所述状态数据库用于存储有所述打印设备对应的各种所述驱动版本以及所述驱动版本对应的所述成功状态值;所述步骤s1之前,还包括:步骤s0,获取当前连接的所述打印设备的所述驱动版本,并判断所述状态数据库中是否存在所述驱动版本对应的所述成功状态值:若存在,则直接从所述状态数据库中获取所述成功状态值,并进入所述步骤s2;若不存在,则进入所述步骤s1。3.根据权利要求2所述的打印状态判断方法,其特征在于,所述步骤s0中,所述驱动版本基于一lodop插件获取得到。4.根据权利要求2所述的打印状态判断方法,其特征在于,所述步骤s1之后,所述步骤s2之前还包括:将所述步骤s1统计确定的所述驱动版本及对应的所述成功状态值存储至所述状态数据库中。5.根据权利要求1所述的打印状态判断方法,其特征在于,所述步骤s1包括:步骤s11,获取所述驱动版本的打印日志,并判断所述打印日志记录的所述状态值是否超过所述预定数量次数;步骤s12,在超过所述预定数量次数时将记录的所述状态值中出现次数最多的所述状态值作为所述驱动版本对应的所述成功状态值。6.根据权利要求1所述的打印状态判断方法,其特征在于,所述步骤s1之后,还包括:在接收到用户反馈的初始化指令时,进行重新初始化操作。7.根据权利要求1所述的打印状态判断方法,其特征在于,所述步骤s2之后,还包括:在使用的所述驱动版本变化后,重新执行所述步骤s1-s2。8.根据权利要求1所述的打印状态判断方法,其特征在于,还包括:提供一操作界面,以供用户在所述操作界面中输入所述驱动版本对应的所述成功状态值。9.根据权利要求1所述的打印状态判断方法,其特征在于,所述预定数量次数至少包括10次。10.一种打印状态判断系统,其特征在于,用于实施如权利要求1-9任意一项所述的打印状态判断方法,包括:第一获取单元,用于在当前连接的打印设备使用的驱动版本不存在对应的成功状态值时,获取所述打印设备执行打印一预定数量次数后反馈的状态值,形成一状态数据集合;统计单元,连接所述第一获取单元,用于将所述状态数据集合中出现次数最多的所述
状态值作为所述驱动版本对应的所述成功状态值;第二获取单元,连接所述统计单元,用于获取所述打印设备执行一打印指令后反馈的当前状态值;判断单元,分别连接所述统计单元和所述第二获取单元,根据所述当前状态值与所述成功状态值判断当前打印是否打印成功。
技术总结
本发明提供一种打印状态判断方法及系统,包括:步骤S1,在当前连接的打印设备使用的驱动版本不存在对应的成功状态值时,获取打印设备执行打印一预定数量次数后反馈的状态值,形成一状态数据集合,并将状态数据集合中出现次数最多的状态值作为驱动版本对应的成功状态值;步骤S2,获取打印设备执行一打印指令后反馈的当前状态值,根据当前状态值与成功状态值判断当前打印是否打印成功。有益效果:本发明通过统计学的方式,将出现次数最多的状态值作为驱动版本对应的成功状态值,来指示打印设备是否打印成功,无需更换打印控件,在一定打印次数后即可实现精准获取打印成功的状态,且扩展性较强。展性较强。展性较强。
技术研发人员:王晓梅 高风许 戴素剑 韩津
受保护的技术使用者:杭州医策科技有限公司
技术研发日:2023.05.06
技术公布日:2023/8/24
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
