CN110837347A - 基于解析插件的网页打印方法、服务器及存储介质 - Google Patents

基于解析插件的网页打印方法、服务器及存储介质 Download PDF

Info

Publication number
CN110837347A
CN110837347A CN201911078315.7A CN201911078315A CN110837347A CN 110837347 A CN110837347 A CN 110837347A CN 201911078315 A CN201911078315 A CN 201911078315A CN 110837347 A CN110837347 A CN 110837347A
Authority
CN
China
Prior art keywords
data
printing
webpage
printed
area
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
CN201911078315.7A
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201911078315.7A priority Critical patent/CN110837347A/zh
Publication of CN110837347A publication Critical patent/CN110837347A/zh
Pending legal-status Critical Current

Links

Images

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/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • 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
    • 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/1275Print workflow management, e.g. defining or changing a workflow, cross publishing

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)
  • Record Information Processing For Printing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于解析插件的网页打印方法,应用于服务器,该方法包括接收包括超文本标记文本及网页样式文件第一待打印区域数据,调用解析插件中的html解析引擎对超文本标记文本中的标签数据进行解析转换成dom节点,根据dom节点构建dom树,调用css解析器对网页样式文件进行解析得到样式规则,基于dom树及样式规则构建render树,基于构建的render树构建虚拟绘图上下文,并将虚拟绘图上下文生成矢量图像数据,再转换成待打印图像文件后发送至打印终端进行网页打印。本发明避免因用户浏览器内核或者内版本不统一而产生的兼容性问题的同时,还能够避免当需要同时打印大量的网页数据时,会由于超过浏览器的最大承载量导致浏览器崩溃的情况发生。

Description

基于解析插件的网页打印方法、服务器及存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于解析插件的网页打印方法、服务器及存储介质。
背景技术
随着网络技术的不断发展,在网络上进行资料存储和管理已经成为人们的日常选择,网页打印是从网页上获取资料的众多方法之一。
目前大多数网页打印方法是利用浏览器本身自带的html解析引擎对待打印网页数据的html数据进行解析,生成打印机支持的格式文件从而完成待打印网页数据的打印。但是当需要同时打印大量的网页数据时,会由于超过浏览器的最大承载量导致浏览器崩溃,影响网页数据的打印的情况发生,存在可改进之处。
发明内容
本发明的主要目的在于提供一种基于解析插件的网页打印方法、服务器及存储介质,旨在解决如何避免当需要同时打印大量的网页数据时,会由于超过浏览器的最大承载量导致浏览器崩溃,影响网页数据的打印的情况发生的问题。
为实现上述目的,本发明提供的一种基于解析插件的网页打印方法,应用于服务器,所述解析插件运行于所述服务器,其中,所述解析插件中集成有html解析引擎,该方法包括:
获取步骤:接收至少一个客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据的文件,所述第一待打印区域数据包括超文本标记文本及网页样式文件;
第一处理步骤:调用所述解析插件中的html解析引擎对所述超文本标记文本中的标签数据进行解析转换成dom节点,根据所述dom节点构建dom树;
第二处理步骤:调用css解析器通过异步线程对所述网页样式文件进行解析得到样式规则,基于所述dom树及所述样式规则构建render树;
第三处理步骤:基于所述构建的render树,通过所述html解析引擎构建虚拟绘图上下文,并将所述虚拟绘图上下文生成矢量图像数据存储至数据库;及
打印步骤:从所述数据库中调取所述矢量图像数据转换成待打印图像文件,将所述待打印图像文件发送至打印终端进行网页打印。
优选地,所述从所述数据库中调取所述矢量图像数据转换成待打印图像文件包括:
获取所述打印终端的配置信息,其中,所述配置信息包括与所述打印终端对应的预设打印格式,根据所述与打印终端对应的预设打印格式将矢量图像数据转化成待打印图像文件。
优选地,该方法还包括替换步骤:
在数据库中预先调用html编辑器配置数据模板,所述数据模板包括静态区域及动态区域;
接收所述客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据,所述第一待打印区域数据包括静态数据及第一动态数据,将所述静态数据输入所述静态区域,将所述第一动态数据输入所述动态区域,将包含所述静态数据及第一动态数据的数据模板生成所述超文本标记文本;及
接收所述客户端发起的第二网页打印请求,解析所述第二网页打印请求得到第二动态数据,将所述第二动态数据替换所述超文本标记文本中的所述第一动态数据。
优选地,该方法还包括自定义步骤:
在显示终端生成设置页面,所述设置页面包括图像预览区域及数据配置区域,其中,所述图像预览区域供用户对所述待打印图像文件进行预览,所述数据配置区域供用户对所述待打印图像文件的配置信息进行自定义设置。。
优选地,所述将所述待打印图像文件发送至打印终端进行网页打印包括:
将所述待打印图像文件存储至数据队列,按照存储至所述数据队列的先后顺序依次发送至打印终端进行网页打印,监测所述打印终端的打印进度,当监测到所述打印终端完成对所述待打印图像文件的打印时,将所述数据队列中位于队头的待打印文件发送至所述打印终端。
为实现上述目的,本发明还进一步提供一种服务器,所述服务器包括存储器和处理器,所述存储器上存储有基于解析插件的网页打印程序,所述基于解析插件的网页打印程序被所述处理器执行时实现如下步骤:
所述基于解析插件的网页打印程序被所述处理器执行时实现如下步骤:
获取步骤:接收至少一个客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据的文件,所述第一待打印区域数据包括超文本标记文本及网页样式文件;
第一处理步骤:调用所述解析插件中的html解析引擎对所述超文本标记文本中的标签数据进行解析转换成dom节点,根据所述dom节点构建dom树;
第二处理步骤:调用css解析器通过异步线程对所述网页样式文件进行解析得到样式规则,基于所述dom树及所述样式规则构建render树;
第三处理步骤:基于所述构建的render树,通过所述html解析引擎构建虚拟绘图上下文,并将所述虚拟绘图上下文生成矢量图像数据存储至数据库;及
打印步骤:从所述数据库中调取所述矢量图像数据转换成待打印图像文件,将所述待打印图像文件发送至打印终端进行网页打印。
优选地,所述从所述数据库中调取所述矢量图像数据转换成待打印图像文件包括:
获取所述打印终端的配置信息,其中,所述配置信息包括与所述打印终端对应的预设打印格式,根据所述与打印终端对应的预设打印格式将矢量图像数据转化成待打印图像文件。
优选地,该程序还执行替换步骤:
在数据库中预先调用html编辑器配置数据模板,所述数据模板包括静态区域及动态区域;
接收所述客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据,所述第一待打印区域数据包括静态数据及第一动态数据,将所述静态数据输入所述静态区域,将所述第一动态数据输入所述动态区域,将包含所述静态数据及第一动态数据的数据模板生成所述超文本标记文本;及
接收所述客户端发起的第二网页打印请求,解析所述第二网页打印请求得到第二动态数据,将所述第二动态数据替换所述超文本标记文本中的所述第一动态数据。
优选地,该程序还执行自定义步骤:
在显示终端生成设置页面,所述设置页面包括图像预览区域及数据配置区域,其中,所述图像预览区域供用户对所述待打印图像文件进行预览,所述数据配置区域供用户对所述待打印图像文件的配置信息进行自定义设置。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于解析插件的网页打印程序,所述基于解析插件的网页打印程序可被一个或者多个处理器执行,以实现如上所述的基于解析插件的网页打印方法的步骤。
本发明提出的基于解析插件的网页打印方法、服务器及存储介质,通过接收客户端发起的第一网页打印请求,对第一网页打印请求进行解析得到包括超文本标记文本及网页样式文件第一待打印区域数据,调用解析插件中的html解析引擎对超文本标记文本中的标签数据进行解析转换成dom节点,根据dom节点构建dom树,调用css解析器对网页样式文件进行解析得到样式规则,基于dom树及样式规则构建render树,基于构建的render树构建虚拟绘图上下文,并将虚拟绘图上下文生成矢量图像数据,再转换成待打印图像文件后发送至打印终端进行网页打印。本发明能够避免当需要同时打印大量的网页数据时,会由于超过浏览器的最大承载量导致浏览器崩溃的情况发生。
附图说明
图1为本发明服务器较佳实施例的应用环境图;
图2为图1中基于解析插件的网页打印程序较佳实施例的程序模块示意图;
图3为本发明基于解析插件的网页打印方法较佳实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参附图做进一步说明。
具体实施方式
为了使本发明的目的、技术本实施例及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术本实施例可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术本实施例的结合出现相互矛盾或无法实现时应当认为这种技术本实施例的结合不存在,也不在本发明要求的保护范围之内。
本发明提供一种服务器1。
所述服务器1包括,但不仅限于,存储器11、处理器12及网络接口13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是服务器1的内部存储单元,例如该服务器1的硬盘。存储器11在另一些实施例中也可以是服务器1的外部存储设备,例如该服务器1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,存储器11还可以既包括服务器1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于服务器1的应用软件及各类数据,例如基于解析插件的网页打印程序10的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行基于解析插件的网页打印程序10等。
网络接口13可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该服务器与其他电子设备之间建立通信连接。
客户端可以是桌上型计算机、笔记本、平板电脑、手机等。
网络可以为互联网、云网络、无线保真(Wi-Fi)网络、个人网(PAN)、局域网(LAN)和/或城域网(MAN)。网络环境中的各种设备可以被配置为根据各种有线和无线通信协议连接到通信网络。这样的有线和无线通信协议的例子可以包括但不限于以下中的至少一个:传输控制协议和互联网协议(TCP/IP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、文件传输协议(FTP)、ZigBee、EDGE、IEEE 802.11、光保真(Li-Fi)、802.16、IEEE 802.11s、IEEE 802.11g、多跳通信、无线接入点(AP)、设备对设备通信、蜂窝通信协议和/或蓝牙(BlueTooth)通信协议或其组合。
可选地,该服务器1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以称为显示屏或显示单元,用于显示在服务器1中处理的信息以及用于显示可视化的用户界面。
图1仅示出了具有组件11-13以及基于解析插件的网页打印程序10的服务器1,本领域技术人员可以理解的是,图1示出的结构并不构成对服务器1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在本实施例中,图1的基于解析插件的网页打印程序10被处理器12执行时,实现以下步骤:
获取步骤:接收至少一个客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据的文件,所述第一待打印区域数据包括超文本标记文本及网页样式文件;
第一处理步骤:调用所述解析插件中的html解析引擎对所述超文本标记文本中的标签数据进行解析转换成dom节点,根据所述dom节点构建dom树;
第二处理步骤:调用css解析器通过异步线程对所述网页样式文件进行解析得到样式规则,基于所述dom树及所述样式规则构建render树;
第三处理步骤:基于所述构建的render树,通过所述html解析引擎构建虚拟绘图上下文,并将所述虚拟绘图上下文生成矢量图像数据存储至数据库;及
打印步骤:从所述数据库中调取所述矢量图像数据转换成待打印图像文件,将所述待打印图像文件发送至打印终端进行网页打印。
在另一实施例中,该方法还包括以下步骤:
在数据库中预先调用html编辑器配置数据模板,所述数据模板包括静态区域及动态区域;
接收所述客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据,所述第一待打印区域数据包括静态数据及第一动态数据,将所述静态数据输入所述静态区域,将所述第一动态数据输入所述动态区域,将包含所述静态数据及第一动态数据的数据模板生成所述超文本标记文本;及
接收所述客户端发起的第二网页打印请求,解析所述第二网页打印请求得到第二动态数据,将所述第二动态数据替换所述超文本标记文本中的所述第一动态数据。
在另一实施例中,该方法还包括自定义步骤:
在显示终端生成设置页面,其中,所述设置页面包括图像预览区域及数据配置区域,所述图像预览区域供用户对所述待打印图像文件进行预览,所述数据配置区域供用户对所述待打印图像文件的配置信息进行自定义设置。
关于上述步骤的详细介绍,请参照下述图2关于基于解析插件的网页打印程序10实施例的程序模块示意图及图3关于基于解析插件的网页打印方法实施例的方法流程示意图的说明。
参照图2所示,为图1中基于解析插件的网页打印程序10实施例的程序模块示意图。基于解析插件的网页打印程序10被分割为多个模块,该多个模块存储于存储器11中,并由处理器12执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。
在本实施例中,所述基于解析插件的网页打印程序10包括获取模块110、第一处理模块120、第二处理模块130、第三处理模块140及打印模块150。
获取模块110,用于接收至少一个客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据的文件,所述第一待打印区域数据包括超文本标记文本及网页样式文件。
在本实施例中,服务器1接收至少一个客户端发起的第一网页打印请求,对第一网页打印请求进行解析得到第一待打印区域数据的文件,其中,第一待打印区域数据可以是一份或多份,第一待打印区域数据可以是当前网页的全部数据也可以是根据用户需求截取当前网页的某部分数据进行打印。第一待打印区域数据包括超文本标记文本(html)及网页样式文件(css)。
超文本标记文本(html)是作为带有字符编码信息的字节流序列在互联网中传送的。字符编码信息可以在随文档发送的http响应头信息中指定,也可以在文档的html标签中指定。浏览器根据字符编码信息将字节流转换为显示在浏览器上的字符。
网页样式文件(css)是cascading style sheets(层叠样式表单)的简称。网页样式文件(css)就是一种叫做样式表(stylesheet)的技术。也有的人称之为“层叠样式表”(cascading style sheets),在网页制作时采用css技术,可以有效地对全站页面有共同性质属性的布局、字体、颜色、背景和其它效果属性实现更加精确的控制。只要对网页里的相应的css代码做一些简单的修改,就可以改变同一页面或整站用到此“选择类”的网页的外观和格式样式。
第一处理模块120,用于调用所述解析插件中的html解析引擎对所述超文本标记文本中的标签数据进行解析转换成dom节点,根据所述dom节点构建dom树。
在本实施例中,html解析引擎,即渲染引擎,常用的html解析引擎包括webkit、gecko和trident等。渲染引擎的职责就是渲染,即在浏览器窗口中显示所客户端请求打印的网页内容。默认情况下,html解析引擎可以显示html、xml文档及图片。利用html解析引擎对超文本标记文本(html)中的标签数据进行解析转换成dom节点,根据dom节点构建dom树。html解析引擎在解析超文本标记文本(html)时,会把超文本标记文本(html)解析为一种称为文档对象模型(document object model)的对象集合,简称dom树。
在本实施例中,解析插件运行于服务器1,其中,html解析引擎集成在解析插件中实现解析插件对html的解析功能,相较于现有技术利用浏览器中的解析引擎完成对网页的打印方式,利用本发明将html解析引擎集成于解析插件并运行于服务器1中,而不是直接运行于客户端,即浏览器中,能够实现html解析过程独立于浏览器之外运行,直接在服务器1上运行,这样的好处在于,能够避免当需要同时打印大量的网页数据时,会由于超过浏览器的最大承载量导致浏览器崩溃的情况发生。
第二处理模块130,用于调用css解析器通过异步线程对所述网页样式文件进行解析得到样式规则,基于所述dom树及所述样式规则构建render树。
在本实施例中,调用css解析器通过异步线程对网页样式文件进行解析得到样式规则,其中css解析器通过异步线程对网页样式文件进行解析,能够与html解析引擎对超文本标记文本中的标签数据进行解析同步进行,提高整体的解析效率。从网页样式文件中解析出样式规则后,基于dom树及样式规则构建render树(渲染树),render树由一些包含有颜色和大小等属性的矩形组成,它们将被按照正确的顺序显示到屏幕上,render树构建好了之后,将会执行布局过程,它将确定每个节点在屏幕上的确切坐标。再下一步就是绘制,即遍历render树,并使用ui后端绘制每个节点。
第三处理模块140,用于基于所述构建的render树,通过所述html解析引擎构建虚拟绘图上下文,并将所述虚拟绘图上下文生成矢量图像数据存储至数据库。
在本实施例中,服务器1基于构建的render树,通过html解析引擎构建虚拟绘图上下文,并将虚拟绘图上下文生成矢量图像数据存储至数据库中。
打印模块150,用于从所述数据库中调取所述矢量图像数据转换成待打印图像文件,将所述待打印图像文件发送至打印终端进行网页打印。
在本实施例中,服务器1从数据库中调取矢量图像数据转换成待打印图像文件,同时获取打印终端的配置信息,其中,配置信息包括与打印终端对应的预设打印格式,包括打印纸张尺寸大小、打印终端适配的打印文件格式(例如PDF),根据与打印终端对应的预设打印格式将矢量图像数据转化成待打印图像文件。
在另一实施例中,所述打印模块150还用于将待打印图像文件存储至数据队列,按照存储至数据队列的先后顺序依次发送至打印终端进行网页打印,监测打印终端的打印进度,当监测到打印终端完成对待打印图像文件的打印时,将数据队列中位于队头的待打印文件发送至打印终端。
具体地,传统的浏览器或者其他的打印程序,如果过快的批量提交待打印文件到打印终端(例如打印机),导致打印终端不能按照预期的顺序打印出来。使用数据队列,可以支持多端并发打印,比如在一个客户端(例如电脑)上安装了打印终端,其他的客户端可以同时发送待打印网页文件到解析数据队列,按照存储至数据队列的先后顺序依次发送至打印终端进行网页打印,同时监测打印终端的打印进度,当监测到打印终端完成对待打印图像文件的打印时,将数据队列中位于队头的待打印文件发送至打印终端。
在另一实施例中,该程序还包括替换模块:
用于在数据库中预先调用html编辑器配置数据模板,所述数据模板包括静态区域及动态区域;
接收所述客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据,所述第一待打印区域数据包括静态数据及第一动态数据,将所述静态数据输入所述静态区域,将所述第一动态数据输入所述动态区域,将包含所述静态数据及第一动态数据的数据模板生成所述超文本标记文本;及
接收所述客户端发起的第二网页打印请求,解析所述第二网页打印请求得到第二动态数据,将所述第二动态数据替换所述超文本标记文本中的所述第一动态数据。
具体地,当用户在打印大批量网页数据的过程中,存在每张待打印图像文件之间只有部分数据是不同的,大部分数据都是固定不变的,为了减少解析插件的解析工作量,实现快速批量打印,因此,通过在数据库中预先调用html编辑器配置包括静态区域及动态区域的数据模板,当接收到客户端发起的第一网页打印请求时,首先对第一网页打印请求进行解析得到包括静态数据及第一动态数据的第一待打印区域数据,之后将静态数据输入数据模板的静态区域,将第一动态数据输入数据模板的动态区域,将包含静态数据及第一动态数据的数据模板生成超文本标记文本存储至数据库。当接收到客户端发起的第二网页打印请求时,只需要解析第二网页打印请求得到第二动态数据,即发生改变的区域数据,将第二动态数据替换超文本标记文本中的第一动态数据,即能够通过利用数据模板,并获取每次需要改变的区域数据替换数据模板中的第一动态数据,生成需要待打印的网页文件。
在另一实施例中,该程序还包括自定义模块:
用于在显示终端生成设置页面,其中,所述设置页面包括图像预览区域及数据配置区域,所述图像预览区域供用户对所述待打印图像文件进行预览,所述数据配置区域供用户对所述待打印图像文件的配置信息进行自定义设置。
具体地,通过在显示终端生成包括图像预览区域及数据配置区域的设置页面,图像预览区域供用户对待打印图像文件进行预览,数据配置区域供用户对待打印图像文件的配置信息进行自定义设置,例如改变打印纸张的尺寸。
此外,本发明还提供一种基于解析插件的网页打印方法。参照图3所示,为本发明基于解析插件的网页打印方法的实施例的方法流程示意图。服务器1的处理器12执行存储器11中存储的基于解析插件的网页打印程序10时实现基于解析插件的网页打印方法的如下步骤:
S110,接收至少一个客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据的文件,所述第一待打印区域数据包括超文本标记文本及网页样式文件。
在本实施例中,服务器1接收至少一个客户端发起的第一网页打印请求,对第一网页打印请求进行解析得到第一待打印区域数据的文件,其中,第一待打印区域数据可以是一份或多份,第一待打印区域数据可以是当前网页的全部数据也可以是根据用户需求截取当前网页的某部分数据进行打印。第一待打印区域数据包括超文本标记文本(html)及网页样式文件(css)。
超文本标记文本(html)是作为带有字符编码信息的字节流序列在互联网中传送的。字符编码信息可以在随文档发送的http响应头信息中指定,也可以在文档的html标签中指定。浏览器根据字符编码信息将字节流转换为显示在浏览器上的字符。
网页样式文件(css)是cascading style sheets(层叠样式表单)的简称。网页样式文件(css)就是一种叫做样式表(stylesheet)的技术。也有的人称之为“层叠样式表”(cascading style sheets),在网页制作时采用css技术,可以有效地对全站页面有共同性质属性的布局、字体、颜色、背景和其它效果属性实现更加精确的控制。只要对网页里的相应的css代码做一些简单的修改,就可以改变同一页面或整站用到此“选择类”的网页的外观和格式样式。
S120,调用所述解析插件中的html解析引擎对所述超文本标记文本中的标签数据进行解析转换成dom节点,根据所述dom节点构建dom树。
在本实施例中,html解析引擎,即渲染引擎,常用的html解析引擎包括webkit、gecko和trident等。渲染引擎的职责就是渲染,即在浏览器窗口中显示所客户端请求打印的网页内容。默认情况下,html解析引擎可以显示html、xml文档及图片。利用html解析引擎对超文本标记文本(html)中的标签数据进行解析转换成dom节点,根据dom节点构建dom树。html解析引擎在解析超文本标记文本(html)时,会把超文本标记文本(html)解析为一种称为文档对象模型(document object model)的对象集合,简称dom树。
在本实施例中,解析插件运行于服务器1,其中,html解析引擎集成在解析插件中实现解析插件对html的解析功能,相较于现有技术利用浏览器中的解析引擎完成对网页的打印方式,利用本发明将html解析引擎集成于解析插件并运行于服务器1中,而不是直接运行于客户端,即浏览器中,能够实现html解析过程独立于浏览器之外运行,直接在服务器1上运行,这样的好处在于,能够避免当需要同时打印大量的网页数据时,会由于超过浏览器的最大承载量导致浏览器崩溃的情况发生。
S130,调用css解析器通过异步线程对所述网页样式文件进行解析得到样式规则,基于所述dom树及所述样式规则构建render树。
在本实施例中,调用css解析器通过异步线程对网页样式文件进行解析得到样式规则,其中css解析器通过异步线程对网页样式文件进行解析,能够与html解析引擎对超文本标记文本中的标签数据进行解析同步进行,提高整体的解析效率。从网页样式文件中解析出样式规则后,基于dom树及样式规则构建render树(渲染树),render树由一些包含有颜色和大小等属性的矩形组成,它们将被按照正确的顺序显示到屏幕上,render树构建好了之后,将会执行布局过程,它将确定每个节点在屏幕上的确切坐标。再下一步就是绘制,即遍历render树,并使用ui后端绘制每个节点。
S140,基于所述构建的render树,通过所述html解析引擎构建虚拟绘图上下文,并将所述虚拟绘图上下文生成矢量图像数据存储至数据库。
在本实施例中,服务器1基于构建的render树,通过html解析引擎构建虚拟绘图上下文,并将虚拟绘图上下文生成矢量图像数据存储至数据库中。
S150,从所述数据库中调取所述矢量图像数据转换成待打印图像文件,将所述待打印图像文件发送至打印终端进行网页打印。
在本实施例中,服务器1从数据库中调取矢量图像数据转换成待打印图像文件,同时获取打印终端的配置信息,其中,配置信息包括与打印终端对应的预设打印格式,包括打印纸张尺寸大小、打印终端适配的打印文件格式(例如PDF),根据与打印终端对应的预设打印格式将矢量图像数据转化成待打印图像文件。
在另一实施例中,该方法还包括以下步骤:
将待打印图像文件存储至数据队列,按照存储至数据队列的先后顺序依次发送至打印终端进行网页打印,监测打印终端的打印进度,当监测到打印终端完成对待打印图像文件的打印时,将数据队列中位于队头的待打印文件发送至打印终端。
具体地,传统的浏览器或者其他的打印程序,如果过快的批量提交待打印文件到打印终端(例如打印机),导致打印终端不能按照预期的顺序打印出来。使用数据队列,可以支持多端并发打印,比如在一个客户端(例如电脑)上安装了打印终端,其他的客户端可以同时发送待打印网页文件到解析数据队列,按照存储至数据队列的先后顺序依次发送至打印终端进行网页打印,同时监测打印终端的打印进度,当监测到打印终端完成对待打印图像文件的打印时,将数据队列中位于队头的待打印文件发送至打印终端。
在另一实施例中,该方法还包括替换步骤:
在数据库中预先调用html编辑器配置数据模板,所述数据模板包括静态区域及动态区域;
接收所述客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据,所述第一待打印区域数据包括静态数据及第一动态数据,将所述静态数据输入所述静态区域,将所述第一动态数据输入所述动态区域,将包含所述静态数据及第一动态数据的数据模板生成所述超文本标记文本;及
接收所述客户端发起的第二网页打印请求,解析所述第二网页打印请求得到第二动态数据,将所述第二动态数据替换所述超文本标记文本中的所述第一动态数据。
具体地,当用户在打印大批量网页数据的过程中,存在每张待打印图像文件之间只有部分数据是不同的,大部分数据都是固定不变的,为了减少解析插件的解析工作量,实现快速批量打印,因此,通过在数据库中预先调用html编辑器配置包括静态区域及动态区域的数据模板,当接收到客户端发起的第一网页打印请求时,首先对第一网页打印请求进行解析得到包括静态数据及第一动态数据的第一待打印区域数据,之后将静态数据输入数据模板的静态区域,将第一动态数据输入数据模板的动态区域,将包含静态数据及第一动态数据的数据模板生成超文本标记文本存储至数据库。当接收到客户端发起的第二网页打印请求时,只需要解析第二网页打印请求得到第二动态数据,即发生改变的区域数据,将第二动态数据替换超文本标记文本中的第一动态数据,即能够通过利用数据模板,并获取每次需要改变的区域数据替换数据模板中的第一动态数据,生成需要待打印的网页文件。
在另一实施例中,该方法还包括自定义步骤:
在显示终端生成设置页面,其中,所述设置页面包括图像预览区域及数据配置区域,所述图像预览区域供用户对所述待打印图像文件进行预览,所述数据配置区域供用户对所述待打印图像文件的配置信息进行自定义设置。
具体地,通过在显示终端生成包括图像预览区域及数据配置区域的设置页面,图像预览区域供用户对待打印图像文件进行预览,数据配置区域供用户对待打印图像文件的配置信息进行自定义设置,例如改变打印纸张的尺寸。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中包括基于解析插件的网页打印程序10,本发明之计算机可读存储介质的具体实施方式与上述基于解析插件的网页打印方法以及服务器1的具体实施方式大致相同,在此不再赘述。
需要说明的是,上述本发明实施例序日仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序日仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术本实施例本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于解析插件的网页打印方法,应用于服务器,其特征在于,所述解析插件运行于所述服务器,其中,所述解析插件中集成有html解析引擎,该方法包括:
获取步骤:接收至少一个客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据的文件,所述第一待打印区域数据包括超文本标记文本及网页样式文件;
第一处理步骤:调用所述解析插件中的html解析引擎对所述超文本标记文本中的标签数据进行解析转换成dom节点,根据所述dom节点构建dom树;
第二处理步骤:调用css解析器通过异步线程对所述网页样式文件进行解析得到样式规则,基于所述dom树及所述样式规则构建render树;
第三处理步骤:基于所述构建的render树,通过所述html解析引擎构建虚拟绘图上下文,并将所述虚拟绘图上下文生成矢量图像数据存储至数据库;及
打印步骤:从所述数据库中调取所述矢量图像数据转换成待打印图像文件,将所述待打印图像文件发送至打印终端进行网页打印。
2.如权利要求1所述的基于解析插件的网页打印方法,其特征在于,所述从所述数据库中调取所述矢量图像数据转换成待打印图像文件包括:
获取所述打印终端的配置信息,其中,所述配置信息包括与所述打印终端对应的预设打印格式,根据所述与打印终端对应的预设打印格式将矢量图像数据转化成待打印图像文件。
3.如权利要求1所述的基于解析插件的网页打印方法,其特征在于,该方法还包括替换步骤:
在数据库中预先调用html编辑器配置数据模板,所述数据模板包括静态区域及动态区域;
接收所述客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据,所述第一待打印区域数据包括静态数据及第一动态数据,将所述静态数据输入所述静态区域,将所述第一动态数据输入所述动态区域,将包含所述静态数据及第一动态数据的数据模板生成所述超文本标记文本;及
接收所述客户端发起的第二网页打印请求,解析所述第二网页打印请求得到第二动态数据,将所述第二动态数据替换所述超文本标记文本中的所述第一动态数据。
4.如权利要求1所述的基于解析插件的网页打印方法,其特征在于,该方法还包括自定义步骤:
在显示终端生成设置页面,其中,所述设置页面包括图像预览区域及数据配置区域,所述图像预览区域供用户对所述待打印图像文件进行预览,所述数据配置区域供用户对所述待打印图像文件的配置信息进行自定义设置。
5.如权利要求1-4任一项所述的基于解析插件的网页打印方法,其特征在于,所述将所述待打印图像文件发送至打印终端进行网页打印包括:
将所述待打印图像文件存储至数据队列,按照存储至所述数据队列的先后顺序依次发送至打印终端进行网页打印,监测所述打印终端的打印进度,当监测到所述打印终端完成对所述待打印图像文件的打印时,将所述数据队列中位于队头的待打印文件发送至所述打印终端。
6.一种服务器,其特征在于,所述服务器包括存储器和处理器,所述存储器上存储有基于解析插件的网页打印程序,所述基于解析插件的网页打印程序被所述处理器执行时实现如下步骤:
获取步骤:接收至少一个客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据的文件,所述第一待打印区域数据包括超文本标记文本及网页样式文件;
第一处理步骤:调用所述解析插件中的html解析引擎对所述超文本标记文本中的标签数据进行解析转换成dom节点,根据所述dom节点构建dom树;
第二处理步骤:调用css解析器通过异步线程对所述网页样式文件进行解析得到样式规则,基于所述dom树及所述样式规则构建render树;
第三处理步骤:基于所述构建的render树,通过所述html解析引擎构建虚拟绘图上下文,并将所述虚拟绘图上下文生成矢量图像数据存储至数据库;及
打印步骤:从所述数据库中调取所述矢量图像数据转换成待打印图像文件,将所述待打印图像文件发送至打印终端进行网页打印。
7.如权利要求6所述的服务器,其特征在于,所述从所述数据库中调取所述矢量图像数据转换成待打印图像文件包括:
获取所述打印终端的配置信息,其中,所述配置信息包括与所述打印终端对应的预设打印格式,根据所述与打印终端对应的预设打印格式将矢量图像数据转化成待打印图像文件。
8.如权利要求6所述的服务器,其特征在于,该程序还执行替换步骤:
在数据库中预先调用html编辑器配置数据模板,所述数据模板包括静态区域及动态区域;
接收所述客户端发起的第一网页打印请求,对所述第一网页打印请求进行解析得到第一待打印区域数据,所述第一待打印区域数据包括静态数据及第一动态数据,将所述静态数据输入所述静态区域,将所述第一动态数据输入所述动态区域,将包含所述静态数据及第一动态数据的数据模板生成所述超文本标记文本;及
接收所述客户端发起的第二网页打印请求,解析所述第二网页打印请求得到第二动态数据,将所述第二动态数据替换所述超文本标记文本中的所述第一动态数据。
9.如权利要求6-8任一项所述的服务器,其特征在于,该程序还执行自定义步骤:
在显示终端生成设置页面,所述设置页面包括图像预览区域及数据配置区域,其中,所述图像预览区域供用户对所述待打印图像文件进行预览,所述数据配置区域供用户对所述待打印图像文件的配置信息进行自定义设置。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于解析插件的网页打印程序,所述基于解析插件的网页打印程序可被一个或者多个处理器执行,以实现如权利要求1-5中任一项所述的基于解析插件的网页打印方法的步骤。
CN201911078315.7A 2019-11-06 2019-11-06 基于解析插件的网页打印方法、服务器及存储介质 Pending CN110837347A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911078315.7A CN110837347A (zh) 2019-11-06 2019-11-06 基于解析插件的网页打印方法、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911078315.7A CN110837347A (zh) 2019-11-06 2019-11-06 基于解析插件的网页打印方法、服务器及存储介质

Publications (1)

Publication Number Publication Date
CN110837347A true CN110837347A (zh) 2020-02-25

Family

ID=69576339

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911078315.7A Pending CN110837347A (zh) 2019-11-06 2019-11-06 基于解析插件的网页打印方法、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN110837347A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026338A (zh) * 2019-11-14 2020-04-17 用友网络科技股份有限公司 基于可编辑模板的打印方法、打印装置及存储介质
CN111651160A (zh) * 2020-06-02 2020-09-11 上海泛微网络科技股份有限公司 插件构建、网页设计的方法和装置
CN113760202A (zh) * 2021-08-11 2021-12-07 广州快批信息科技有限公司 一种单据打印方法、服务器、系统及存储介质
CN114780164A (zh) * 2022-02-28 2022-07-22 深圳开源互联网安全技术有限公司 基于浏览器插件筛选网页信息的方法及系统
CN114817639A (zh) * 2022-05-18 2022-07-29 山东大学 基于对比学习的网页图卷积文档排序方法及系统
CN117436429A (zh) * 2023-12-22 2024-01-23 珠海格力电器股份有限公司 文档导出方法、装置、计算机设备和存储介质
CN113760202B (zh) * 2021-08-11 2024-05-31 广州快批信息科技有限公司 一种单据打印方法、服务器、系统及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050157323A1 (en) * 2003-10-29 2005-07-21 Seiko Epson Corporation Printing device and printing method
CN102520893A (zh) * 2011-10-26 2012-06-27 苏州工业园区鑫海胜电子有限公司 基于云网络的移动终端网页打印方法
CN102736878A (zh) * 2012-06-27 2012-10-17 北京新媒传信科技有限公司 一种实现web页面部分打印的方法和装置
CN103246489A (zh) * 2012-02-14 2013-08-14 佳能株式会社 打印系统、打印服务器和控制方法
US20140185072A1 (en) * 2012-12-27 2014-07-03 Zih Corp. Method and apparatus for printing html content
CN105607880A (zh) * 2015-12-29 2016-05-25 南威软件股份有限公司 一种审批单据的打印方法和装置
CN109815451A (zh) * 2018-12-13 2019-05-28 方正璞华软件(武汉)股份有限公司 一种pdf生成方法、装置及设备
CN109960475A (zh) * 2017-12-22 2019-07-02 赵廷江 一种网页打印方法及打印系统
CN110187848A (zh) * 2019-04-30 2019-08-30 广州迅维信息安全技术有限公司 基于web端的打印方法及装置
CN110347349A (zh) * 2019-05-21 2019-10-18 平安银行股份有限公司 浏览器中打印指定内容的方法、装置和计算机设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050157323A1 (en) * 2003-10-29 2005-07-21 Seiko Epson Corporation Printing device and printing method
CN102520893A (zh) * 2011-10-26 2012-06-27 苏州工业园区鑫海胜电子有限公司 基于云网络的移动终端网页打印方法
CN103246489A (zh) * 2012-02-14 2013-08-14 佳能株式会社 打印系统、打印服务器和控制方法
CN102736878A (zh) * 2012-06-27 2012-10-17 北京新媒传信科技有限公司 一种实现web页面部分打印的方法和装置
US20140185072A1 (en) * 2012-12-27 2014-07-03 Zih Corp. Method and apparatus for printing html content
CN105607880A (zh) * 2015-12-29 2016-05-25 南威软件股份有限公司 一种审批单据的打印方法和装置
CN109960475A (zh) * 2017-12-22 2019-07-02 赵廷江 一种网页打印方法及打印系统
CN109815451A (zh) * 2018-12-13 2019-05-28 方正璞华软件(武汉)股份有限公司 一种pdf生成方法、装置及设备
CN110187848A (zh) * 2019-04-30 2019-08-30 广州迅维信息安全技术有限公司 基于web端的打印方法及装置
CN110347349A (zh) * 2019-05-21 2019-10-18 平安银行股份有限公司 浏览器中打印指定内容的方法、装置和计算机设备

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026338A (zh) * 2019-11-14 2020-04-17 用友网络科技股份有限公司 基于可编辑模板的打印方法、打印装置及存储介质
CN111026338B (zh) * 2019-11-14 2023-10-03 用友网络科技股份有限公司 基于可编辑模板的打印方法、打印装置及存储介质
CN111651160A (zh) * 2020-06-02 2020-09-11 上海泛微网络科技股份有限公司 插件构建、网页设计的方法和装置
CN113760202A (zh) * 2021-08-11 2021-12-07 广州快批信息科技有限公司 一种单据打印方法、服务器、系统及存储介质
CN113760202B (zh) * 2021-08-11 2024-05-31 广州快批信息科技有限公司 一种单据打印方法、服务器、系统及存储介质
CN114780164A (zh) * 2022-02-28 2022-07-22 深圳开源互联网安全技术有限公司 基于浏览器插件筛选网页信息的方法及系统
CN114780164B (zh) * 2022-02-28 2023-04-25 深圳开源互联网安全技术有限公司 基于浏览器插件筛选网页信息的方法及系统
CN114817639A (zh) * 2022-05-18 2022-07-29 山东大学 基于对比学习的网页图卷积文档排序方法及系统
CN114817639B (zh) * 2022-05-18 2024-05-10 山东大学 基于对比学习的网页图卷积文档排序方法及系统
CN117436429A (zh) * 2023-12-22 2024-01-23 珠海格力电器股份有限公司 文档导出方法、装置、计算机设备和存储介质
CN117436429B (zh) * 2023-12-22 2024-05-17 珠海格力电器股份有限公司 文档导出方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN110837347A (zh) 基于解析插件的网页打印方法、服务器及存储介质
CN107766359B (zh) 一种将页面内容转换为图片的方法、装置以及计算设备
US7949942B2 (en) System and method for identifying line breaks
US9619440B2 (en) Document conversion apparatus
US9117314B2 (en) Information output apparatus, method, and recording medium for displaying information on a video display
JP2008176820A (ja) 携帯用計算デバイスへの無線通信媒体を介するコンテンツ送達のためのシステムおよび方法
JP2005504375A (ja) 印刷システム
CN110865775B (zh) 一种基于web进行在线设计与预览的打印方法
WO2016015564A1 (zh) 一种文档显示方法以及装置
US20090037812A1 (en) Print server, preview data generating method, and storage medium
US20140281914A1 (en) Information processing system, information processing device, and information processing method
JP2010129057A (ja) 情報処理装置、表示データ翻訳方法、及びプログラム
JP2006331142A (ja) 情報提供システム、情報提供方法等
US9886426B1 (en) Methods and apparatus for generating an efficient SVG file
CN110990732A (zh) 基于网页的加载方法、装置、设备及存储介质
CN114791988A (zh) 一种基于浏览器的pdf文件解析方法、系统、存储介质
CN109815451B (zh) 一种pdf生成方法、装置及设备
JP2008310816A (ja) 複数のマークアップ・ページ・データをコンパクトに表現するシステムおよび方法
US9626131B2 (en) Print data processing method, print data processing apparatus, and storage medium for processing print data according to print setting information in the print data
JP4203287B2 (ja) 情報処理装置、情報処理方法及び情報処理システム
JP7318386B2 (ja) 情報処理装置及びプログラム
CN113297425A (zh) 文档转换方法、装置、服务器及存储介质
JP5427931B2 (ja) 帳票サーバ装置、帳票サーバ装置の制御方法および帳票サーバ装置の制御プログラム
JP5069322B2 (ja) 帳票生成装置、帳票生成方法および帳票生成プログラム
JP2008181484A (ja) ドキュメント・オブジェクト・モデル記述のコンテキストに基づいたトラバースのためのシステムおよび方法

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