CN117149109A - 打印方法、装置、计算机设备和存储介质 - Google Patents

打印方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN117149109A
CN117149109A CN202311254600.6A CN202311254600A CN117149109A CN 117149109 A CN117149109 A CN 117149109A CN 202311254600 A CN202311254600 A CN 202311254600A CN 117149109 A CN117149109 A CN 117149109A
Authority
CN
China
Prior art keywords
printing
browser
print
request
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311254600.6A
Other languages
English (en)
Inventor
刘玉红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology Co Ltd
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC, ICBC Technology Co Ltd filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202311254600.6A priority Critical patent/CN117149109A/zh
Publication of CN117149109A publication Critical patent/CN117149109A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1209Improving or facilitating administration, e.g. print management resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

本申请涉及一种打印方法、装置、计算机设备、存储介质和计算机程序产品,涉及计算机技术领域。可用于金融科技领域或其他相关领域。所述方法包括:获取用户输入的打印指令;基于所述打印指令生成打印请求;向浏览器代理客户端发送所述打印请求,以指示所述浏览器代理客户端接收到所述打印请求后,向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。采用本方法能够避免不同浏览器之间打印方式不兼容以及实现复杂打印功能。

Description

打印方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种打印方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
页面打印是人们生活中常常需要用到的功能。目前的页面打印功能常常基于浏览器实现,通过在浏览器上编辑打印选项并生成打印请求,然后将当前网页内容打印出来。
但是这种在浏览器上实现打印功能的方式,由于浏览器打印功能限制以及不同浏览器之间打印方式的兼容性问题,导致只能进行简单的打印功能,甚至由于打印方式不兼容还可能导致打印出错。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现复杂打印功能以及避免不同浏览器打印方式不兼容的打印方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种打印方法,所述方法由浏览器执行,所述方法包括:
获取用户输入的打印指令;
基于所述打印指令生成打印请求;
向浏览器代理客户端发送所述打印请求,以指示所述浏览器代理客户端接收到所述打印请求后,向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
在其中一个实施例中,所述获取用户输入的打印指令,包括:
基于用于构建用户界面的渐进式框架生成打印组件;
调用所述打印组件,展示打印页面,所述打印页面包含所述打印组件提供的各种打印设置功能;
检测到用户通过所述打印设置功能输入的打印设置信息后,基于所述用户所输入的所述打印设置信息生成所述打印指令。
在其中一个实施例中,所述打印设置功能包括:
页面大小设置功能、页面边距设置功能、页面方向设置功能、页面元素编辑功能、页面元素类型选择功能、页面元素布局调整功能、套打功能、或者定位打印内容功能中至少一项。
第二方面,本申请提供了一种打印方法,所述方法由浏览器代理客户端执行,所述方法包括:
接收浏览器发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成的;
向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
在其中一个实施例中,所述接收浏览器发送的打印请求之前,还包括:
通过预设的浏览器接口协议与所述浏览器建立长连接;
所述接收浏览器发送的打印请求包括:通过所述长连接接收浏览器发送的打印请求;
所述向打印服务端发送所述打印请求之后,所述方法还包括:
接收所述打印服务端返回的打印状态更新信息;
通过所述长连接向所述浏览器发送所述打印状态更新信息,以指示所述浏览器基于所述打印状态更新信息更新打印状态。
在其中一个实施例中,所述接收浏览器发送的打印请求之后,所述方法还包括:
将所述打印请求存储于打印队列中;
所述向打印服务器发送所述打印请求,包括:
当预设打印周期到达后,从所述打印队列中获取当前打印请求,向所述打印服务器发送所述当前打印请求。
第三方面,本申请提供了一种打印方法,所述方法由打印服务端执行,所述方法包括:
接收浏览器代理客户端发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成并发送给所述浏览器代理客户端的;
访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口;
基于所述打印接口对所述打印请求进行处理。
在其中一个实施例中,所述基于所述打印接口处理所述打印请求,包括:
对所述打印请求进行解析,得到打印设置信息,将所述打印设置信息转换为所述打印接口可识别的打印参数;
将所述打印参数输入所述打印接口,通过执行所述打印接口对应的代码得到所述打印请求的打印结果。
第四方面,本申请提供了一种打印装置,包括:
获取模块,用于通过浏览器获取用户输入的打印指令;
生成模块,用于通过所述浏览器基于所述打印指令生成打印请求;
第一发送模块,用于通过所述浏览器向浏览器代理客户端发送所述打印请求,以指示所述浏览器代理客户端接收到所述打印请求后,向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
第五方面,本申请提供了一种打印装置,包括:
第一接收模块,用于通过浏览器代理客户端接收浏览器发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成的;
第二发送模块,用于通过所述浏览器代理客户端向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
第六方面,本申请提供了一种打印装置,包括:
第三接收模块,用于通过打印服务端接收浏览器代理客户端发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成并发送给所述浏览器代理客户端的;
调用模块,用于通过所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口;
处理模块,用于通过所述打印服务端基于所述打印接口对所述打印请求进行处理。
第七方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各方法实施例中的步骤。
第八方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各方法实施例中的步骤。
第九方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
上述打印方法、装置、计算机设备、存储介质和计算机程序产品,本申请由浏览器代理客户端接收浏览器发送的打印请求,并向打印服务端发送该打印请求,以指示打印服务端访问预配置的图形用户界面库,由于图形用户界面库中包括与多个操作系统分别相匹配的打印接口,可以调用图形用户界面库中与当前操作系统相匹配的打印接口,基于打印接口处理打印请求,可见,本申请的打印功能并不是在浏览器中实现,而是由本地的浏览器代理客户端接收浏览器打印请求后发送给打印服务端,再由打印服务端调用打印接口来实现打印功能,可以在服务器本地调用具体的打印接口完成打印,可以实现更加复杂的打印功能,同时也可以避免了不同浏览器之间打印方式不兼容的问题。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中打印方法的应用环境图;
图2为一个实施例中打印方法的流程示意图;
图3为另一个实施例中打印方法的流程示意图;
图4为另一个实施例中打印方法的流程示意图;
图5为另一个实施例中打印方法的流程示意图;
图6为另一个实施例中打印装置的结构框图;
图7为另一个实施例中打印装置的结构框图;
图8为另一个实施例中打印装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的打印方法,可以应用于如图1所示的应用环境中。包括浏览器、浏览器代理客户端以及打印服务端,浏览器代理客户端作为浏览器和打印服务端之间的中间设备,可以分别与浏览器和打印服务端进行数据交互,用于将浏览器的请求转发给打印服务端。其中,浏览器位于终端,浏览器代理客户端以及打印服务端位于服务器。
参照图2,下面,以该方法应用于浏览器为例,本申请的打印方法包括以下步骤:
步骤S201、获取用户输入的打印指令;
浏览器可以主动检测用户输入的打印指令。
步骤S202、基于打印指令生成打印请求;
浏览器解析打印指令,得到解析结果,基于解析结果以及服务器的统一资源定位符(uniform resource locator,URL),生成打印请求。
步骤S203、向浏览器代理客户端发送打印请求,以指示浏览器代理客户端接收到打印请求后,向打印服务端发送打印请求,以指示打印服务端访问预配置的图形用户界面库,调用图形用户界面库中与当前操作系统相匹配的打印接口,基于打印接口对打印请求进行处理,图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
可以使用微框架(microframework,flask)开发浏览器代理客户端,flask是一个轻量级的python全球广域网(web)框架,它旨在简化web应用程序的开发过程。flask使用简单且易于理解的代码结构,同时提供了构建稳健和灵活的web应用程序所需的核心功能。使用flask技术来接受网页请求,可以快速搭建web服务,并方便地处理网页请求和响应。
由于打印服务端是与浏览器代理客户端进行数据交互、而不直接与浏览器进行数据交互,所以对于打印服务端来说,浏览器代理客户端属于其对应的客户端,但是实际上浏览器代理客户端位于服务器侧,只是一个虚拟的客户端,并不存在实际的客户端实体,因此称之为浏览器代理客户端。
浏览器代理客户端接收到打印请求后,可以直接将该打印请求转发给打印服务端,再由打印服务端对该打印请求进行参数解析得到打印设置参数;或者浏览器代理客户端接收到打印请求后,也可以对该打印请求进行参数解析得到打印设置参数,然后将打印设置参数发送给打印服务端。
打印服务端接收到打印请求或者打印设置参数后,访问预配置的图形用户界面库,图形用户界面库包括PyQt5,PyQt5是基于工具箱(toolkit,Qt)框架的Python绑定库,图形用户界面库包括多个操作系统的应用程序编程接口(application programminginterface,API),即打印接口,因此可以在多种类型的操作系统上运行。多种类型的操作系统包括windows、linux、以及iOS操作系统。
打印服务器确定当前操作系统的类型,基于当前操作系统的类型与打印接口的对应关系,从图形用户界面库中调用与当前操作系统相匹配的打印接口,从而通过该打印接口对打印请求进行处理得到处理结果。
本申请由浏览器代理客户端接收浏览器发送的打印请求,并向打印服务端发送该打印请求,以指示打印服务端访问预配置的图形用户界面库,由于图形用户界面库中包括与多个操作系统分别相匹配的打印接口,可以调用图形用户界面库中与当前操作系统相匹配的打印接口,基于打印接口处理打印请求,可见,本申请的打印功能并不是在浏览器中实现,而是由本地的浏览器代理客户端接收浏览器打印请求后发送给打印服务端,再由打印服务端调用打印接口来实现打印功能,可以在服务器本地调用具体的打印接口完成打印,可以实现更加复杂的打印功能,同时也可以避免了不同浏览器之间打印方式不兼容的问题。
在其中一个实施例中,浏览器获取用户输入的打印指令包括:浏览器通过用于构建用户界面的渐进式框架获取用户输入的打印指令。
在本实施例中,用于构建用户界面的渐进式框架包括可视化用户环境java脚本(visual user environment javascript,vue.js)框架。
在其中一个实施例中,所述基于用于构建用户界面的渐进式框架获取用户输入的打印指令,包括:基于用于构建用户界面的渐进式框架生成打印组件;调用所述打印组件,展示打印页面,所述打印页面包含所述打印组件提供的各种打印设置功能;检测到用户通过所述打印设置功能输入的打印设置信息后,基于所述用户所输入的所述打印设置信息生成所述打印指令。
其中,页面大小设置功能、页面边距设置功能、页面方向设置功能、页面元素编辑功能、页面元素类型选择功能、页面元素布局调整功能、套打功能或者定位打印内容功能中至少一项。
在本实施例中,浏览器可以通过vue.js框架构建基于页面盒子模型的打印模板设计器,基于页面盒子模型的打印模板设计器可以提供直观、灵活和可定制的界面,帮助用户快速设计和调整打印模板,简化打印功能的开发和维护工作。同时,它还可以提高打印模板的可重用性和可管理性,降低开发和维护的成本。页面盒子模型是指将页面映射到一个矩形平面,页面被划分为多个盒子,包括主体盒子、页眉盒子、页脚盒子等,可以设置页面的各个方面,如页面的尺寸、页边距,页眉、页脚等。页面模型定义了页面区域,然后划分了多个周边缘盒,用来控制页区域的大小和页区域的边缘和页面本身的端部之间的余量的尺寸。
具体方案如下:
通过vue.js框架生成打印组件,每一打印组件提供一个打印设置功能,调用该打印组件向用户展示打印页面,打印页面上包含该打印设置功能,通过这种方式,实现了由Vue.js框架搭建前端应用程序,即得到了基于页面盒子模型的打印模板设计器,用于实现打印模板设计器的界面和交互逻辑。
在本实施例中,打印组件包括vue组件。
打印设置功能包括页面大小设置功能、页面边距设置功能、页面方向设置功能。使用打印组件来呈现打印设置功能,并绑定相应的数据,当修改页面设置时,通过打印组件的事件机制触发实时更新页面预览;
打印设置功能还包括页面元素编辑功能和页面元素类型选择功能。打印组件提供元素编辑功能,允许用户添加、删除、修改和移动元素。打印组件还提供页面元素类型选择功能,使用打印组件来表示不同类型的元素,例如文本框、图片、以及条码等多种类型的元素。通过数据绑定将元素的属性与打印组件实例中的数据关联,实现实时修改和预览效果。
打印设置功能还包括页面元素布局调整功能。元素布局调整功能包括元素的拖拽、缩放和旋转等功能,还包括对元素的位置和大小的调整功能。
元素布局调整功能还包括调整工具栏和选项功能,如对齐、分布、网格等。实现元素的对齐、分布和网格吸附等功能。
打印设置功能还包括套打功能和定位打印内容功能,由于本申请可以直接调用图形用户界面库中与当前操作系统相匹配的打印接口进行打印处理,则可以通过用户界面的渐进式框架在浏览器侧定位打印内容或者选择套打功能,定位打印内容指的是从待打印的内容中选择部分区域的内容打印,可以实现用户个性化的打印需求,提供更灵活和定制化的打印体验。而现有方案是由浏览器进行打印,无法调用与当前操作系统相匹配的打印接口进行打印处理,无法实现定位打印内容或者选择套打功能。
在本实施例中,打印模板设计器的数据存储于打印服务端。使用Vue.js框架的生命周期钩子函数和异步请求,实现模板的加载和保存操作。
在本实施例中,基于页面盒子模型的模版设计器可以进行多种不同的打印设置,通过该框架可以接收更加复杂的打印设置,然后通过向浏览器代理客户端发送打印请求,浏览器代理客户端发送该请求到打印服务端后,由打印服务端调用与当前操作系统对应的打印接口完成打印,可以在服务器本地调用具体的打印接口完成打印,而不是在由浏览器进行打印,因此可以实现更复杂的打印设置和处理复杂的打印逻辑,从而本申请方案整体上可以实现更复杂的打印功能。
本实施例可以实现对网页的精确打印,包括页面布局、元素位置等的准确呈现,提高打印的质量和可读性。
参照图3,以该方法应用于浏览器代理客户端为例,本申请的打印方法包括以下步骤:
步骤S301、接收浏览器发送的打印请求,打印请求是浏览器获取用户输入的打印指令后,基于打印指令生成的;
步骤S302、向打印服务端发送打印请求,以指示打印服务端访问预配置的图形用户界面库,调用图形用户界面库中与当前操作系统相匹配的打印接口,基于打印接口对打印请求进行处理,图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
本实施例与上述图2所示实施例为实质上相同的方案,其具体实现方式与上述图2所示实施例相同,此处不再赘述。
本申请由浏览器代理客户端接收浏览器发送的打印请求,并向打印服务端发送该打印请求,以指示打印服务端访问预配置的图形用户界面库,由于图形用户界面库中包括与多个操作系统分别相匹配的打印接口,可以调用图形用户界面库中与当前操作系统相匹配的打印接口,基于打印接口处理打印请求,可见,本申请的打印功能并不是在浏览器中实现,而是由本地的浏览器代理客户端接收浏览器打印请求后发送给打印服务端,再由打印服务端调用打印接口来实现打印功能,可以在服务器本地调用具体的打印接口完成打印,可以实现更加复杂的打印功能,同时也可以避免了不同浏览器之间打印方式不兼容的问题。
本申请中,浏览器代理客户端可以接收浏览器的请求,并将请求转发给打印服务端,浏览器与浏览器代理客户端之间有两种网络连接方式,具体来说:
一种可能的情况是,浏览器代理客户端可以创建路由来接收浏览器发送的打印请求。可以使用flask的应用程序路由装饰器来定义该路由。在路由的处理函数中,获取打印请求的相关参数,如打印内容、打印机名称等;
这种情况下,浏览器代理客户端与浏览器之间可以传输打印请求,但是打印请求传输结束后浏览器代理客户端与浏览器之间的网络连接就断开了,打印状态更新无法反馈给浏览器,不适合实时数据的交互。
另一种可能的情况是:所述接收浏览器发送的打印请求之前,还包括:
通过预设的浏览器接口协议与所述浏览器建立长连接;
所述接收浏览器发送的打印请求包括:通过所述长连接接收浏览器发送的打印请求;
所述向打印服务端发送所述打印请求之后,所述方法还包括:
接收所述打印服务端返回的打印状态更新信息;
通过所述长连接向所述浏览器发送所述打印状态更新信息,以指示所述浏览器基于所述打印状态更新信息更新打印状态。
在本实施例中,可以通过预设的浏览器接口协议(websocket)建立浏览器代理客户端与所述浏览器之间的长连接,通过所述长连接接收浏览器发送的打印请求。websocket可以实现双向实时通信,用于接收浏览器发起的打印请求,创建一个websocket对象,并指定连接的URL,该URL指示访问服务器,在打印请求发起时,使用websocket对象的发送方法将打印请求发送给服务器,由服务器侧的浏览器代理客户端接收该打印请求。在服务器,可以使用flask接口库来处理websocket连接,并在连接建立时进行相关的初始化操作。可以定义相应的事件处理函数,来接收和处理打印请求。
打印服务端处理完打印请求后,打印服务端更新打印状态,生成打印状态更新信息,打印服务端将打印状态更新信息发送给浏览器代理客户端,由于长连接不仅可以实现保持心跳,还可以实现实时数据的双向通信,浏览器代理客户端可以通过该长连接向浏览器发送所述打印状态更新信息,以指示浏览器基于该打印状态更新信息更新打印状态,例如可以将打印预览页面更新为打印成功页面。
在本实施例中,通过在浏览器和浏览器代理客户端之间建立长连接,可以向浏览器反馈打印状态更新信息,以便在浏览器页面上实现打印状态的更新。
在其中一个实施例中,所述接收浏览器发送的打印请求之后,所述方法还包括:
将所述打印请求存储于打印队列中;
所述向打印服务器发送所述打印请求,包括:
当预设打印周期到达后,从所述打印队列中获取当前打印请求,向所述打印服务器发送所述当前打印请求。
在本实施例中,可以使用预设的列构建打印队列,确保打印请求按顺序处理。浏览器代理客户端可以使用队列数据结构来实现打印队列,在接收到打印请求时,将打印请求放入打印队列中,可以使用队列的放入方法来实现。当预设打印周期到达后,按顺序从打印队列中获取一个或多个打印请求并进行处理,可以使用队列的获取方法来从队列中获取打印请求,当下一预设打印周期到达后,按顺序从打印队列中取出下一个打印请求并进行处理,直到打印队列中的所有打印请求都被处理完毕。
参照图4,以该方法应用于打印服务端为例,本申请的打印方法包括以下步骤:
步骤S401、接收浏览器代理客户端发送的打印请求,打印请求是浏览器获取用户输入的打印指令后,基于打印指令生成并发送给浏览器代理客户端的;
步骤S402、访问预配置的图形用户界面库,调用图形用户界面库中与当前操作系统相匹配的打印接口,图形用户界面库中包括与多个操作系统分别相匹配的打印接口;
步骤S403、基于打印接口对打印请求进行处理。
本实施例与上述图2和图3所示实施例为实质上相同的方案,其具体实现方式与上述图2和图3所示实施例相同,此处不再赘述。
本申请由浏览器代理客户端接收浏览器发送的打印请求,并向打印服务端发送该打印请求,以指示打印服务端访问预配置的图形用户界面库,由于图形用户界面库中包括与多个操作系统分别相匹配的打印接口,可以调用图形用户界面库中与当前操作系统相匹配的打印接口,基于打印接口处理打印请求,可见,本申请的打印功能并不是在浏览器中实现,而是由本地的浏览器代理客户端接收浏览器打印请求后发送给打印服务端,再由打印服务端调用打印接口来实现打印功能,可以在服务器本地调用具体的打印接口完成打印,可以实现更加复杂的打印功能,同时也可以避免了不同浏览器之间打印方式不兼容的问题。
如上述一种情况是对所述打印请求进行解析,得到打印设置信息可以由浏览器代理客户端执行,则浏览器代理客户端直接将打印设置信息发送给打印服务端,以便打印服务端完成打印;另一种情况是浏览器代理客户端将打印请求发送给打印服务端,由打印服务端进行解析,则针对另一种情况,所述基于所述打印接口处理所述打印请求,包括:
对所述打印请求进行解析,得到打印设置信息,将所述打印设置信息转换为所述打印接口可识别的打印参数;将所述打印参数输入所述打印接口,通过执行所述打印接口对应的代码得到所述打印请求的打印结果。
综上,下面,对本申请整体方案进行说明:
目前直接调用浏览器进行打印的方案存在如下问题:
样式兼容性:不同浏览器对打印样式的支持不一致,可能导致打印结果在不同浏览器上显示效果不同,需要额外的兼容性处理。
页面适应性:浏览器页面通常是为屏幕显示而设计的,打印时可能需要对页面进行适应性调整,以确保打印结果的可读性和布局的合理性。
打印设置限制:由于浏览器页面是在浏览器中进行打印,受限于浏览器的打印设置,如边距、页眉页脚等,可能无法完全满足用户的个性化需求。
缺乏统一标准:目前的浏览器打印技术缺乏统一的标准,不同浏览器、操作系统和设备之间的打印行为可能存在差异,给开发和测试带来一定的挑战。
限制打印功能:目前的web打印技术主要集中在基本的打印功能,如打印当前页面、打印便携式文档格式(portable Document Format,PDF)格式文件等,对于更复杂的打印需求,如批量打印、自定义打印样式等,可能需要借助第三方工具或自定义开发。
而参见图5,本申请的方案为:
S1、在浏览器中,通过vue.js框架获取用户输入的打印指令,基于打印指令生成打印请求。
基vue.js生成打印组件,调用该打印组件,展示打印页面,打印页面包含打印组件提供的各种打印设置功能,以此构建得到基于页面盒子模型的打印模板设计器,实现多种打印设置功能。
检测到用户通过打印设置功能输入的打印设置信息后,基于用户所输入的打印设置信息生成打印指令。
S2、浏览器通过长连接将打印请求发送给浏览器代理客户端。
使用微框架开发浏览器代理客户端,使用websocket协议建立浏览器和客户端之间的长连接,浏览器代理客户端通过该长连接接收浏览器发送的打印请求;
S3:浏览器代理客户端将打印请求存储于打印队列中,当预设打印周期到达后,从打印队列中获取当前打印请求;
S4、浏览器代理客户端向打印服务器发送当前打印请求。
S5、打印服务端调用图形用户界面库中与当前操作系统相匹配的打印接口,对打印请求进行解析,得到打印设置信息,将打印设置信息转换为打印接口可识别的打印参数,将打印参数输入打印接口,通过执行打印接口对应的代码得到打印请求的打印结果。
S6、打印服务端打印完成后,生成状态更新信息;
S7、打印服务端将状态更新信息发送给浏览器代理客户端;
S8、浏览器代理客户端通过长连接将状态更新信息发送给浏览器;
S9、浏览器基于打印状态更新信息更新打印状态。
本申请具有如下效果:
1、相对于由浏览器进行打印,本申请基于打印组件所提供的打印设置功能进行打印设置,可以输入更复杂、精确的打印设置,再由在服务器调用打印接口进行打印,可以实现更加复杂的打印功能,同时也可以避免了不同浏览器之间打印方式不兼容的问题。解决了上述样式兼容性、页面适应性、打印设置限制、缺乏统一标准以及限制打印功能等各方面的问题。
2、可以实现套打功能、以及定位打印内容功能等细粒度打印控制,满足了用户个性化的打印需求。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的打印方法的打印装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个打印装置实施例中的具体限定可以参见上文中对于打印方法的限定,在此不再赘述。
在一个示例性的实施例中,如图6所示,提供了一种打印装置600,包括:
获取模块601,用于通过浏览器获取用户输入的打印指令;
生成模块602,用于通过浏览器基于所述打印指令生成打印请求;
第一发送模块603,用于通过浏览器向浏览器代理客户端发送所述打印请求,以指示所述浏览器代理客户端接收到所述打印请求后,向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
在其中一个实施例中,获取模块601,具体用于:
基于用于构建用户界面的渐进式框架生成打印组件;
调用所述打印组件,展示打印页面,所述打印页面包含所述打印组件提供的各种打印设置功能;
检测到用户通过所述打印设置功能输入的打印设置信息后,基于所述用户所输入的所述打印设置信息生成所述打印指令。
在其中一个实施例中,所述打印设置功能包括:
页面大小设置功能、页面边距设置功能、页面方向设置功能、页面元素编辑功能、页面元素类型选择功能、页面元素布局调整功能、套打功能、或者定位打印内容功能中至少一项。
在一个示例性的实施例中,如图7所示,提供了一种打印装置700,包括:
第一接收模块701,用于通过浏览器代理客户端接收浏览器发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成的;
第二发送模块702,用于通过所述浏览器代理客户端向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
在其中一个实施例中,所述在第一接收模块701通过所述浏览器代理客户端接收浏览器发送的打印请求之前,该装置还包括:
长连接建立模块,用于通过预设的浏览器接口协议与所述浏览器建立长连接;
第一接收模块701具体用于:通过所述长连接接收浏览器发送的打印请求;
在第二发送模块702通过所述浏览器代理客户端向打印服务端发送所述打印请求之后,该装置还包括:
第二接收模块,用于接收所述打印服务端返回的打印状态更新信息;
更新模块,用于通过所述长连接向所述浏览器发送所述打印状态更新信息,以指示所述浏览器基于所述打印状态更新信息更新打印状态。
在其中一个实施例中,在第一接收模块701通过所述浏览器代理客户端接收浏览器发送的打印请求之后,该装置还包括:
存储模块,用于将所述打印请求存储于打印队列中;
所述第二发送模块702通过所述浏览器代理客户端在向打印服务器发送所述打印请求时,具体用于:
当预设打印周期到达后,从所述打印队列中获取当前打印请求,向所述打印服务器发送所述当前打印请求。
在一个示例性的实施例中,如图8所示,提供了一种打印装置800,包括:
第三接收模块801,用于通过打印服务端接收浏览器代理客户端发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成并发送给所述浏览器代理客户端的;
调用模块802,用于通过所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口;
处理模块803,用于基于所述打印接口对所述打印请求进行处理。
在其中一个实施例中,处理模块803具体用于:对所述打印请求进行解析,得到打印设置信息,将所述打印设置信息转换为所述打印接口可识别的打印参数;将所述打印参数输入所述打印接口,通过执行所述打印接口对应的代码得到所述打印请求的打印结果。
上述打印装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储打印数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种打印方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个示例性的实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (14)

1.一种打印方法,其特征在于,所述方法由浏览器执行,所述方法包括:
获取用户输入的打印指令;
基于所述打印指令生成打印请求;
向浏览器代理客户端发送所述打印请求,以指示所述浏览器代理客户端接收到所述打印请求后,向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
2.根据权利要求1所述的方法,其特征在于,所述获取用户输入的打印指令,包括:
基于用于构建用户界面的渐进式框架生成打印组件;
调用所述打印组件,展示打印页面,所述打印页面包含所述打印组件提供的各种打印设置功能;
检测到用户通过所述打印设置功能输入的打印设置信息后,基于所述用户所输入的所述打印设置信息生成所述打印指令。
3.根据权利要求2所述的方法,其特征在于,所述打印设置功能包括:
页面大小设置功能、页面边距设置功能、页面方向设置功能、页面元素编辑功能、页面元素类型选择功能、页面元素布局调整功能、套打功能、或者定位打印内容功能中至少一项。
4.一种打印方法,其特征在于,所述方法由浏览器代理客户端执行,所述方法包括:
接收浏览器发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成的;
向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
5.基于权利要求4所述的方法,其特征在于,所述接收浏览器发送的打印请求之前,还包括:
通过预设的浏览器接口协议与所述浏览器建立长连接;
所述接收浏览器发送的打印请求包括:通过所述长连接接收浏览器发送的打印请求;
所述向打印服务端发送所述打印请求之后,所述方法还包括:
接收所述打印服务端返回的打印状态更新信息;
通过所述长连接向所述浏览器发送所述打印状态更新信息,以指示所述浏览器基于所述打印状态更新信息更新打印状态。
6.根据权利要求1所述的方法,其特征在于,所述接收浏览器发送的打印请求之后,所述方法还包括:
将所述打印请求存储于打印队列中;
所述向打印服务器发送所述打印请求,包括:
当预设打印周期到达后,从所述打印队列中获取当前打印请求,向所述打印服务器发送所述当前打印请求。
7.一种打印方法,其特征在于,所述方法由打印服务端执行,所述方法包括:
接收浏览器代理客户端发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成并发送给所述浏览器代理客户端的;
访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口;
基于所述打印接口对所述打印请求进行处理。
8.根据权利要求7所述的方法,其特征在于,所述基于所述打印接口处理所述打印请求,包括:
对所述打印请求进行解析,得到打印设置信息,将所述打印设置信息转换为所述打印接口可识别的打印参数;
将所述打印参数输入所述打印接口,通过执行所述打印接口对应的代码得到所述打印请求的打印结果。
9.一种打印装置,其特征在于,包括:
获取模块,用于通过浏览器获取用户输入的打印指令;
生成模块,用于通过所述浏览器基于所述打印指令生成打印请求;
第一发送模块,用于通过所述浏览器向浏览器代理客户端发送所述打印请求,以指示所述浏览器代理客户端接收到所述打印请求后,向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
10.一种打印装置,其特征在于,包括:
第一接收模块,用于通过浏览器代理客户端接收浏览器发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成的;
第二发送模块,用于通过所述浏览器代理客户端向打印服务端发送所述打印请求,以指示所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,基于所述打印接口对所述打印请求进行处理,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口。
11.一种打印装置,其特征在于,包括:
第三接收模块,用于通过打印服务端接收浏览器代理客户端发送的打印请求,所述打印请求是所述浏览器获取用户输入的打印指令后,基于所述打印指令生成并发送给所述浏览器代理客户端的;
调用模块,用于通过所述打印服务端访问预配置的图形用户界面库,调用所述图形用户界面库中与当前操作系统相匹配的打印接口,所述图形用户界面库中包括与多个操作系统分别相匹配的打印接口;
处理模块,用于通过所述打印服务端基于所述打印接口对所述打印请求进行处理。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
CN202311254600.6A 2023-09-26 2023-09-26 打印方法、装置、计算机设备和存储介质 Pending CN117149109A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311254600.6A CN117149109A (zh) 2023-09-26 2023-09-26 打印方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311254600.6A CN117149109A (zh) 2023-09-26 2023-09-26 打印方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN117149109A true CN117149109A (zh) 2023-12-01

Family

ID=88910103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311254600.6A Pending CN117149109A (zh) 2023-09-26 2023-09-26 打印方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN117149109A (zh)

Similar Documents

Publication Publication Date Title
US11861334B2 (en) Providing communication between a client system and a process-based software application
US10705942B1 (en) Simulated testing of API
US20190236118A1 (en) Filtered stylesheets
JP6433339B2 (ja) 情報処理システム、サーバ装置、制御方法およびプログラム
US11635974B2 (en) Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction
US10831453B2 (en) Connectors framework
US10331765B2 (en) Methods and apparatus for translating forms to native mobile applications
KR101494844B1 (ko) 메타 데이터를 이용한 차트 변환 시스템 및 그 방법
CN108073435B (zh) 一种多信息集成显示方法及系统
US9141596B2 (en) System and method for processing markup language templates from partial input data
US20180349149A1 (en) A method and system for providing and executing web applications
US9152619B2 (en) System and method for constructing markup language templates and input data structure specifications
US11010536B2 (en) Systems and methods for dynamic web user interface generation
JP2016162200A (ja) 情報処理システム、情報処理装置、制御方法、及びコンピュータプログラム
US20110047527A1 (en) Systems, Methods, and Apparatuses for Providing Computing Device Deployment Environments for Developing Applications
US10268490B2 (en) Embedding user interface snippets from a producing application into a consuming application
US20230351097A1 (en) Systems and methods for integrating application components in a web application
KR20090000199A (ko) 웹 서버 어플리케이션 프레임워크와 상기 프레임워크를이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는컴퓨터로 읽을 수 있는 기록 매체
JP2017033052A (ja) 画像形成装置における制御装置およびプログラム
JP2017027319A (ja) 帳票文書データの表示・編集・保存方法、装置、処理プログラム
CN110312990A (zh) 配置方法及系统
CN117149109A (zh) 打印方法、装置、计算机设备和存储介质
US20160350083A1 (en) Rapid mobile app generator
JP7381900B2 (ja) 情報処理システムと、その制御方法及びプログラム
EP3502922A1 (en) Method for previewing a document during editing, and a computer program product and apparatus therefor

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination