一种打印请求的审批方法、存储介质和服务器与流程

文档序号:16753539发布日期:2019-01-29 17:07阅读:430来源:国知局
一种打印请求的审批方法、存储介质和服务器与流程

本发明涉及计算机技术领域,尤其涉及一种打印请求的审批方法、存储介质和服务器。



背景技术:

对于用户打印行为的监控和审批,目前通常采用以下方法:部署打印服务器,所有的网络打印机接入该服务器;用户在客户端使用账号登录该服务器的打印审批系统,发起打印请求;在审批通过后,该打印审批系统发送控制指令给相应的网络打印机进行打印,并通过生成操作日记来记录各个用户的打印行为。然而,该方法存在如下问题:用户需要登录打印审批系统才能进行打印,改变了原有的打印操作习惯,用户体验不佳。



技术实现要素:

有鉴于此,本发明实施例提供了一种打印请求的审批方法、存储介质和服务器,旨在解决用户需要登录打印审批系统才能进行打印,用户体验不佳的问题。

本发明实施例的第一方面,提供了一种打印请求的审批方法,包括:

使用api劫持的方式拦截客户端在应用程序中发出的打印请求;

提取所述打印请求的打印属性信息;

根据所述打印属性信息对所述打印请求进行审批;

若所述审批的结果为审批通过,则将所述打印请求发送至打印机,执行打印操作;

若所述审批的结果为审批未通过,则忽略所述打印请求。

本发明实施例的第二方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如本发明实施例的第一方面提出的打印请求的审批方法的步骤。

本发明实施例的第三方面,提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:

使用api劫持的方式拦截客户端在应用程序中发出的打印请求;

提取所述打印请求的打印属性信息;

根据所述打印属性信息对所述打印请求进行审批;

若所述审批的结果为审批通过,则将所述打印请求发送至打印机,执行打印操作;

若所述审批的结果为审批未通过,则忽略所述打印请求。

本发明实施例提出的打印请求的审批方法包括:使用api劫持的方式拦截客户端在应用程序中发出的打印请求;提取所述打印请求的打印属性信息;根据所述打印属性信息对所述打印请求进行审批;若所述审批的结果为审批通过,则将所述打印请求发送至打印机,执行打印操作;若所述审批的结果为审批未通过,则忽略所述打印请求。采用本打印请求的审批方法,用户可以在客户端的应用程序(比如word、excel)中直接发起打印请求,系统会使用api劫持的方式拦截该打印请求,然后跳转至审批流程的入口,对该打印请求进行审批,从而完成一次打印流程。可见,用户打印时无需在客户端登录打印审批系统,不必改变自己的打印习惯,从而有效提升了用户体验。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种打印请求的审批方法的第一个实施例的流程图;

图2是本发明实施例提供的一种打印请求的审批方法的第二个实施例的流程图;

图3是本发明实施例提供的一种打印请求的审批装置的一个实施例的结构图;

图4是本发明实施例提供的一种服务器的示意图。

具体实施方式

本发明实施例提供了一种打印请求的审批方法、存储介质和服务器,旨在解决用户需要登录打印请求的审批系统才能进行打印,用户体验不佳的问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例中一种打印请求的审批方法的第一个实施例包括:

101、使用api劫持的方式拦截客户端在应用程序中发出的打印请求;

当用户于客户端使用应用程序(比如word,excel)并发出打印请求时,系统会使用api劫持的方式拦截该打印请求。api劫持的方式即apihook技术,能够对api的正常调用起一个拦截或中间层的作用,这样可以在调用正常的api之前得到控制权,跳转执行自己的代码。当用户试图打印一个文件时,使用apihook截取打印文件的api,这样就不会直接走打印文件的流程,而是跳转至别的流程,比如打印审批流程。

102、提取所述打印请求的打印属性信息;

在拦截到一个打印请求之后,提取所述打印请求的打印属性信息,然后进入打印审批流程。具体的,打印属性信息可以包括:用户身份、打印机名称、计算机名称、打印文档名称、打印文档类型、打印时间、打印内容信息、打印文档的页面总数等信息。任何客户端应用程序,比如word,pdf等程序在打印的时候都会调用gdi32.dll这个组件,gdi32.dll是windows操作系统标准化的组件,通过其开发的api描述可知程序在打印的时候会把打印属性信息封装在hdc对象的上下文。可以采用挂钩endpage的方法得到该hdc对象,保存并转化为打印位图,比如可以通过easyhook组件挂钩gdi32.dll下的endpage,然后通过自定义的跳转函数提取所述打印属性信息,提取到的打印属性信息可以保存到客户端的指定目录下。

103、根据所述打印属性信息对所述打印请求进行审批;

服务器可以从客户端的指定目录获取所述打印属性信息,然后根据所述打印属性信息对所述打印请求进行审批。具体的,可以在服务器设置一个打印管理系统,在获取到打印属性信息之后,将该打印属性信息发送至打印管理系统进行审批。审批的方式可以包括人工审批和自动审批。人工审批即由具有审批权限的用户对接收到的每条打印请求进行人工审核;自动审批即系统可以根据打印请求的打印属性信息自动完成审批,得到审批结果。

104、判断所述审批的结果是否为审批通过;

在得到审批结果后,判断该审批结果是否为审批通过。若所述审批的结果为审批通过,则执行步骤105;若所述审批的结果为审批未通过,则执行步骤106。

105、将所述打印请求发送至打印机,执行打印操作;

所述打印请求审批通过,此时将所述打印请求发送至打印机,执行打印操作。

106、忽略所述打印请求。

所述打印请求审批未通过,此时忽略所述打印请求。另外,还可以返回相应的提示信息给客户端,比如审批失败的提醒以及审批未通过的原因。

本发明实施例提出的打印请求的审批方法包括:使用api劫持的方式拦截客户端在应用程序中发出的打印请求;提取所述打印请求的打印属性信息;根据所述打印属性信息对所述打印请求进行审批;若所述审批的结果为审批通过,则将所述打印请求发送至打印机,执行打印操作;若所述审批的结果为审批未通过,则忽略所述打印请求。采用本打印请求的审批方法,用户可以在客户端的应用程序(比如word、excel)中直接发起打印请求,系统会使用api劫持的方式拦截该打印请求,然后跳转至审批流程的入口,对该打印请求进行审批,从而完成一次打印流程。可见,用户打印时无需在客户端登录打印审批系统,不必改变自己的打印习惯,从而有效提升了用户体验。

请参阅图2,本发明实施例中一种打印请求的审批方法的第二个实施例包括:

201、使用api劫持的方式拦截客户端在应用程序中发出的打印请求;

步骤201与步骤101相同,具体可参照步骤101的相关说明。

202、提取所述打印请求的打印属性信息,所述打印属性信息包括用户身份;

在拦截到一个打印请求之后,提取所述打印请求的打印属性信息,所述打印属性信息包括用户身份。具体的,该用户身份是用户于客户端登录时采用的账号。

203、获取与所述用户身份对应的打印权限表;

在得到用户身份之后,获取与所述用户身份对应的打印权限表。服务器可以预先为每个用户身份构建对应的打印权限表,并保存在数据库中。该打印权限表用于限定用户具有的打印权限,比如是否具有打印权、可打印的次数、可打印的文档页数、可打印时间等。

204、根据所述打印权限表和所述打印属性信息确定审批的结果;

在得到与所述用户身份对应的打印权限表之后,根据所述打印权限表和所述打印属性信息确定审批的结果。具体的,可以根据打印属性信息中的参数判断该打印请求是否满足打印权限表限定的条件,若满足则审批通过,若不满足则审批不通过。

可选的,所述打印权限表包括所述用户身份可打印的文档类型,所述打印属性信息还包括待打印的文档类型,步骤204可以包括:

(1)若所述待打印的文档类型属于所述用户身份可打印的文档类型,则确定所述审批的结果为审批通过;

(2)若所述待打印的文档类型不属于所述用户身份可打印的文档类型,则确定所述审批的结果为审批未通过。

打印权限表可以限定各个用户身份可以打印的文档类型,然后从打印属性信息中获取待打印的文档类型,若待打印的文档类型属于用户身份可打印的文档类型之一,则审批通过。若待打印的文档类型不属于用户身份可打印的文档类型,则审批不通过。

可选的,所述打印权限表包括所述用户身份可打印的时间段,步骤204可以包括:

(1)若当前时间属于所述用户身份可打印的时间段,则确定所述审批的结果为审批通过;

(2)若当前时间不属于所述用户身份可打印的时间段,则确定所述审批的结果为审批未通过。

打印权限表还可以限制各个用户可打印的时间段,从而错开打印时间,避免出现集中打印的拥堵问题。服务器通过获取当前的系统时间,然后判断该系统时间是否属于所述用户身份可打印的时间段,若是则审批通过,否则审批不通过。

可选的,所述打印权限表包括所述用户身份当月可打印的次数以及所述用户身份当月可打印的文档总页数,所述打印属性信息还包括待打印文档的总页数,步骤204可以包括:

(1)查询所述用户身份的打印记录;

(2)根据所述打印记录确定所述用户身份当月已打印的次数以及所述用户身份当月已打印的文档总页数;

(3)若所述用户身份当月已打印的次数小于所述用户身份当月可打印的次数,且所述用户身份当月已打印的文档总页数与所述待打印文档的总页数之和小于所述用户身份当月可打印的文档总页数,则确定所述审批的结果为审批通过;

(4)若所述用户身份当月已打印的次数大于或等于所述用户身份当月可打印的次数,或者所述用户身份当月已打印的文档总页数与所述待打印文档的总页数之和大于或等于所述用户身份当月可打印的文档总页数,则确定所述审批的结果为审批未通过。

对于步骤(1),服务器会存储每个用户的打印记录,比如在什么时间打印了什么文档,该文档的总页数等打印记录。在确定用户身份之后,可以从数据库中查询得到该用户身份的打印记录。

对于步骤(2),由于所述打印记录记录用户每次打印的相关信息,故能够根据所述打印记录确定所述用户身份当月已打印的次数以及所述用户身份当月已打印的文档总页数。

对于步骤(3),若所述用户身份当月已打印的次数小于所述用户身份当月可打印的次数,且所述用户身份当月已打印的文档总页数与所述待打印文档的总页数之和小于所述用户身份当月可打印的文档总页数,则确定所述审批的结果为审批通过。比如,某用户a的打印权限表中限定其当月可打印30次,当月可打印的文档总页数为300。若a当月已打印20次,a当月已打印的文档总页数为200,待打印文档的总页数为30,则审批结果为审批通过。

对于步骤(4),若所述用户身份当月已打印的次数大于或等于所述用户身份当月可打印的次数,或者所述用户身份当月已打印的文档总页数与所述待打印文档的总页数之和大于或等于所述用户身份当月可打印的文档总页数,则确定所述审批的结果为审批未通过。比如,在上述步骤(3)的例子中,若a当月已打印30次以上,或者a当月已打印的文档总页数为290,待打印文档的总页数为20(290+20=310>300),则审批结果为未通过。

进一步的,所述用户身份当月可打印的文档总页数可以根据以下步骤确定:

(1)查询所述用户身份所属部门当月的打印经费;

(2)根据所述打印经费计算得到所述用户身份所属部门当月可打印的文档总页数;

(3)获取所述用户身份的职位信息和所述用户身份所属部门的部门人数;

(4)根据所述用户身份所属部门当月可打印的文档总页数、所述职位信息以及所述部门人数确定所述用户身份当月可打印的文档总页数。

打印审批流程通常应用于企业内部的打印管理,在该应用场景下,每个用户身份都归属于某个部门。服务器可以预先设置各个部门每月的打印经费,或者可以由相关人员在每个月的指定时间录入各个部门下个月的打印经费。在确定用户身份后,查询所述用户身份所属部门当月的打印经费,然后根据所述打印经费计算得到所述用户身份所属部门当月可打印的文档总页数。在计算时,可以先根据纸张、油墨、电费以及打印机维护的价格计算得到每页文档的打印成本,然后再结合打印经费计算得到所述用户身份所属部门当月可打印的文档总页数。接着,获取所述用户身份的职位信息和所述用户身份所属部门的部门人数,根据所述用户身份所属部门当月可打印的文档总页数、所述职位信息以及所述部门人数确定所述用户身份当月可打印的文档总页数。具体的,可以采用按照部门人数平均分配部门当月可打印的文档总页数,或者按照职位的不同分别为部门的各个用户设置不同的当月可打印的文档总页数(该部门所有用户当月可打印的文档总页数之和等于该部门当月可打印的文档总页数)。

205、判断所述审批的结果是否为审批通过;

若所述审批的结果为审批通过,则执行步骤206;若所述审批的结果为审批未通过,则执行步骤207。

206、将所述打印请求发送至打印机,执行打印操作;

进一步的,所述打印权限表还包括所述用户身份可使用的打印机id,所述将所述打印请求发送至打印机可以包括:

(1)若所述打印机id的数量为一个,则将所述打印请求发送至所述打印机id对应的打印机;

(2)若所述打印机id的数量为二个以上,则分别获取各个所述打印机id对应的打印机的打印任务队列,然后将所述打印请求发送至各个所述打印机id对应的打印机中打印任务队列的打印任务最少的一台打印机。

具体的,可以将打印请求发送至该用户可以使用的任意一台打印机,然后将该打印机的相关信息(比如打印机名称,id,所处位置等)返回用户的客户端。另外,若用户可以使用多台打印机,则可以选取其中打印任务队列的打印任务最少的一台打印机。

207、忽略所述打印请求。

步骤205-207的具体说明可参照步骤104-106。

本发明实施例提出的打印请求的审批方法包括:使用api劫持的方式拦截客户端在应用程序中发出的打印请求;提取所述打印请求的打印属性信息,所述打印属性信息包括用户身份;获取与所述用户身份对应的打印权限表;根据所述打印权限表和所述打印属性信息确定审批的结果;若所述审批的结果为审批通过,则将所述打印请求发送至打印机,执行打印操作;若所述审批的结果为审批未通过,则忽略所述打印请求。本实施例能够根据打印权限表和打印属性信息自动对用户发出的打印请求进行审批,与本发明的第一个实施例相比,提升了打印的审批效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

上面主要描述了一种打印请求的审批方法,下面将对一种打印请求的审批装置进行详细描述。

请参阅图3,本发明实施例中一种打印请求的审批装置的一个实施例包括:

打印请求拦截模块301,用于使用api劫持的方式拦截客户端在应用程序中发出的打印请求;

打印属性信息提取模块302,用于提取所述打印请求的打印属性信息;

打印请求审批模块303,用于根据所述打印属性信息对所述打印请求进行审批;

打印请求发送模块304,用于若所述审批的结果为审批通过,则将所述打印请求发送至打印机,执行打印操作;

打印请求忽略模块305,用于若所述审批的结果为审批未通过,则忽略所述打印请求。

进一步的,所述打印属性信息包括用户身份,所述打印请求审批模块可以包括:

打印权限获取单元,用于获取与所述用户身份对应的打印权限表,所述打印权限表预先构建并存储于服务器的数据库中;

审批结果确定单元,用于根据所述打印权限表和所述打印属性信息确定所述审批的结果。

进一步的,所述打印权限表包括所述用户身份可打印的文档类型,所述打印属性信息还包括待打印的文档类型,所述审批结果确定单元可以包括:

第一审批子单元,用于若所述待打印的文档类型属于所述用户身份可打印的文档类型,则确定所述审批的结果为审批通过;

第二审批子单元,用于若所述待打印的文档类型不属于所述用户身份可打印的文档类型,则确定所述审批的结果为审批未通过。

进一步的,所述打印权限表包括所述用户身份可打印的时间段,所述审批结果确定单元可以包括:

第三审批子单元,用于若当前时间属于所述用户身份可打印的时间段,则确定所述审批的结果为审批通过;

第四审批子单元,用于若当前时间不属于所述用户身份可打印的时间段,则确定所述审批的结果为审批未通过。

进一步的,所述打印权限表包括所述用户身份当月可打印的次数以及所述用户身份当月可打印的文档总页数,所述打印属性信息还包括待打印文档的总页数,所述审批结果确定单元可以包括:

打印记录查询子单元,用于查询所述用户身份的打印记录;

已打印文档确定子单元,用于根据所述打印记录确定所述用户身份当月已打印的次数以及所述用户身份当月已打印的文档总页数;

第五审批子单元,用于若所述用户身份当月已打印的次数小于所述用户身份当月可打印的次数,且所述用户身份当月已打印的文档总页数与所述待打印文档的总页数之和小于所述用户身份当月可打印的文档总页数,则确定所述审批的结果为审批通过;

第六审批子单元,用于若所述用户身份当月已打印的次数大于或等于所述用户身份当月可打印的次数,或者所述用户身份当月已打印的文档总页数与所述待打印文档的总页数之和大于或等于所述用户身份当月可打印的文档总页数,则确定所述审批的结果为审批未通过。

进一步的,所述审批结果确定单元还可以包括:

打印经费查询子单元,用于查询所述用户身份所属部门当月的打印经费;

部门可打印文档页数计算子单元,用于根据所述打印经费计算得到所述用户身份所属部门当月可打印的文档总页数;

信息获取子单元,用于获取所述用户身份的职位信息和所述用户身份所属部门的部门人数;

用户可打印文档页数确定子单元,用于根据所述用户身份所属部门当月可打印的文档总页数、所述职位信息以及所述部门人数确定所述用户身份当月可打印的文档总页数。

进一步的,所述打印权限表还包括所述用户身份可使用的打印机id,所述打印请求发送模块可以包括:

第一打印请求发送单元,用于若所述打印机id的数量为一个,则将所述打印请求发送至所述打印机id对应的打印机;

第二打印请求发送单元,用于若所述打印机id的数量为二个以上,则分别获取各个所述打印机id对应的打印机的打印任务队列,然后将所述打印请求发送至各个所述打印机id对应的打印机中打印任务队列的打印任务最少的一台打印机。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如图1或图2表示的任意一种打印请求的审批方法的步骤。

本发明实施例还提供一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如图1或图2表示的任意一种打印请求的审批方法的步骤。

图4是本发明一实施例提供的服务器的示意图。如图4所示,该实施例的服务器4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机可读指令42。所述处理器40执行所述计算机可读指令42时实现上述各个打印请求的审批方法实施例中的步骤,例如图1所示的步骤101至106。或者,所述处理器40执行所述计算机可读指令42时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至305的功能。

示例性的,所述计算机可读指令42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令42在所述服务器4中的执行过程。

所述服务器4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述服务器4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是服务器4的示例,并不构成对服务器4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器4还可以包括输入输出设备、网络接入设备、总线等。

所述处理器40可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器41可以是所述服务器4的内部存储单元,例如服务器4的硬盘或内存。所述存储器41也可以是所述服务器4的外部存储设备,例如所述服务器4上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器41还可以既包括所述服务器4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机可读指令以及所述服务器所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1