一种在浏览器端自定义JS模板的打印方法及系统技术方案

技术编号:23889690 阅读:18 留言:0更新日期:2020-04-22 05:57
本发明专利技术涉及一种在浏览器端自定义JS模板的打印方法,在服务器端创建至少一JS模板,并将JS模板中可变的样式选项设置为参数项;在浏览器端显示JS模板和参数项,用户选择JS模板并配置参数项,生成样式参数;在浏览器端创建JS渲染引擎,其根据JS模板和用户实时配置的样式参数动态生成html预览页面;用户确定打印时,JS渲染引擎将要打印的业务数据填入用户配置好的JS模板并生成html打印页面,然后再将html打印页面传送给服务器端,服务器端解析html打印页面,生成pdf打印文件;所述pdf打印文件回传至浏览器端,供用户预览及打印图像。本发明专利技术在调整样式参数的同时能够实时预览打印排版效果,打印更直观更方便。

A printing method and system of customizing JS template in browser

【技术实现步骤摘要】
一种在浏览器端自定义JS模板的打印方法及系统
本专利技术涉及一种在浏览器端自定义JS模板的打印方法,属于B/S打印领域。
技术介绍
现有B/S构建的打印系统中,基于浏览器端的打印,必须先收集客户的打印要求,设计并开发pdf打印模板,并将其保存在服务器端,一般要开发多个pdf打印模板以满足客户在不同应用场合的需求。在打印时,用户在浏览器端选择其中一个pdf打印模板,将选择的pdf打印模板和实际要打印的业务数据传给服务器端,服务器端调用pdf开源工具在后台生成pdf打印文件,然后直接送入打印机进行打印。这种打印方式存在的问题是:1、灵活性差,当客户需求改变时,必须再次设计开发打印模板,不能快速响应客户需求,且开发的pdf打印模板的数量以指数增长;2、客户选择好打印模板,确认打印后就直接打印出来,无法实时预览结合实际业务数据后的排版效果,也就无法在打印前及时发现排版问题,导致重复多次打印。
技术实现思路
为了解决上述技术问题,本专利技术提供一种在浏览器端自定义JS模板的打印方法,解决了现有打印模板使用灵活性差,且无法实时预览打印效果的问题。本专利技术技术方案一如下:一种在浏览器端自定义JS模板的打印方法,在服务器端创建至少一JS模板,并将JS模板中可变的样式选项设置为能够提供给用户配置的参数项;在浏览器端显示所述JS模板和参数项,用户选择JS模板并配置参数项,生成与该JS模板对应的样式参数;在浏览器端创建JS渲染引擎,所述JS渲染引擎根据JS模板和用户实时配置的样式参数动态生成html预览页面,用户通过html预览页面实时预览排版效果;用户确定打印时,所述JS渲染引擎将要打印的业务数据填入用户配置好的JS模板并生成html打印页面,然后再将html打印页面传送给服务器端,服务器端解析html打印页面,生成pdf打印文件;所述pdf打印文件回传至浏览器端,供用户预览及打印图像。更优地,所述JS渲染引擎生成html预览页面,具体为:所述JS渲染引擎读取用户配置的JS模板以及对应的样式参数和预先设置的预览数据,JS脚本将预览数据和样式参数填入所述JS模板的参数项中,生成一个标准的html预览页面。更优地,用户在浏览器端选择JS模板并配置参数项,然后将配置的样式参数保存至服务器端;用户确定打印时,服务器端获取要打印的业务数据和样式参数并传送至浏览器端的JS渲染引擎,所述JS渲染引擎将要打印的业务数据填入JS模板中,将样式参数填入所述JS模板的参数项中,生成html打印页面,然后再将html打印页面传送给服务器端。更优地,服务器端通过itextpdf软件解析并生成pdf打印文件。更优地,所述可变的打印选项包括表头是否每页重复,所述JS模板包含可自定义的表头标签,该标签的属性中包含是否重复,若用户设置表头每页重复,则要求标题在每页显示;JS渲染引擎在生成html打印页面时,先读取该表头标签,然后在表体内填充要打印的业务数据,每填充一行业务数据,计算表体高度是否会超过预设的页面高度,所述表体高度包含标题、已填充的业务数据以及即将要填充的该行业务数据的总高度,如果不超过,则将该行业务数据填充到表体中,如果超过,则添加一新页面,并将标题填充至表体中,然后继续填充业务数据并重复上述表体高度的判断。为了解决上述技术问题,本专利技术还提供一种在浏览器端自定义JS模板的打印系统。本专利技术技术方案二如下:一种在浏览器端自定义JS模板的打印系统,包括浏览器端和服务器端,在服务器端创建至少一JS模板,并将JS模板中可变的样式选项设置为能够提供给用户配置的参数项;在浏览器端显示所述JS模板和参数项,用户选择JS模板并配置参数项,生成与该JS模板对应的样式参数;在浏览器端创建JS渲染引擎,所述JS渲染引擎根据JS模板和用户实时配置的样式参数动态生成html预览页面,用户通过html预览页面实时预览排版效果;用户确定打印时,所述JS渲染引擎将要打印的业务数据填入用户配置好的JS模板并生成html打印页面,然后再将html打印页面传送给服务器端,服务器端解析html打印页面,生成pdf打印文件;所述pdf打印文件回传至浏览器端,供用户预览及打印图像。更优地,所述JS渲染引擎生成html预览页面,具体为:所述JS渲染引擎读取用户配置的JS模板以及对应的样式参数和预先设置的预览数据,JS脚本将预览数据和样式参数填入所述JS模板的参数项中,生成一个标准的html预览页面。更优地,用户在浏览器端选择JS模板并配置参数项,然后将配置的样式参数保存至服务器端;用户确定打印时,服务器端获取要打印的业务数据和样式参数并传送至浏览器端的JS渲染引擎,所述JS渲染引擎将要打印的业务数据填入JS模板中,将样式参数填入所述JS模板的参数项中,生成html打印页面,然后再将html打印页面传送给服务器端。更优地,服务器端通过itextpdf软件解析并生成pdf打印文件。更优地,所述可变的打印选项包括表头是否每页重复,所述JS模板包含可自定义的表头标签,该标签的属性中包含是否重复,若用户设置表头每页重复,则要求标题在每页显示;JS渲染引擎在生成html打印页面时,先读取该表头标签,然后在表体内填充要打印的业务数据,每填充一行业务数据,计算表体高度是否会超过预设的页面高度,所述表体高度包含标题、已填充的业务数据以及即将要填充的该行业务数据的总高度,如果不超过,则将该行业务数据填充到表体中,如果超过,则添加一新页面,并将标题填充至表体中,然后继续填充业务数据并重复上述表体高度的判断。本专利技术具有如下有益效果:1、本专利技术一种在浏览器端自定义JS模板的打印方法和系统,在浏览器端配置JS模板并利用JS渲染引擎动态生成html预览页面,提高了JS模板的使用灵活性,解决打印模板数量暴增的问题,且在调整样式参数的同时能够实时预览打印排版效果,打印更直观更方便。2、本专利技术一种在浏览器端自定义JS模板的打印方法和系统,将配置好的JS模板和样式参数保存在服务器端,用户可以在任意一浏览器端调用该JS模板,模板使用更方便。3、本专利技术一种在浏览器端自定义JS模板的打印方法和系统,通过设置参数项的标签,JS渲染引擎识别该标签,并依据该标签进行渲染,实现用户样式参数的渲染。附图说明图1为本专利技术一种在浏览器端自定义JS模板的打印方法的流程图;图2为本专利技术一种在浏览器端自定义JS模板的打印方法的另一流程图;图3为本专利技术的打印配置页面的示意图;图4为本专利技术的html预览页面示意图;图5为图4所示html预览页面对应的pdf打印文件。具体实施方式下面结合附图和具体实施例来对本专利技术进行详细的说明。实施例一请参阅图1和图3,一种在浏览器端自定义JS模板的打印方法,在服务器端创建至少一JS模板,并将JS模板中可变的样式选项设置为能够提供给用户配置的参数项,所述可变的样式选项包括字体(Font)、字号,logo图片是否显示,logo本文档来自技高网...

【技术保护点】
1.一种在浏览器端自定义JS模板的打印方法,其特征在于:/n在服务器端创建至少一JS模板,并将JS模板中可变的样式选项设置为能够提供给用户配置的参数项;/n在浏览器端显示所述JS模板和参数项,用户选择JS模板并配置参数项,生成与该JS模板对应的样式参数;/n在浏览器端创建JS渲染引擎,所述JS渲染引擎根据JS模板和用户实时配置的样式参数动态生成html预览页面,用户通过html预览页面实时预览排版效果;/n用户确定打印时,所述JS渲染引擎将要打印的业务数据填入用户配置好的JS模板并生成html打印页面,然后再将html打印页面传送给服务器端,服务器端解析html打印页面,生成pdf打印文件;所述pdf打印文件回传至浏览器端,供用户预览及打印图像。/n

【技术特征摘要】
1.一种在浏览器端自定义JS模板的打印方法,其特征在于:
在服务器端创建至少一JS模板,并将JS模板中可变的样式选项设置为能够提供给用户配置的参数项;
在浏览器端显示所述JS模板和参数项,用户选择JS模板并配置参数项,生成与该JS模板对应的样式参数;
在浏览器端创建JS渲染引擎,所述JS渲染引擎根据JS模板和用户实时配置的样式参数动态生成html预览页面,用户通过html预览页面实时预览排版效果;
用户确定打印时,所述JS渲染引擎将要打印的业务数据填入用户配置好的JS模板并生成html打印页面,然后再将html打印页面传送给服务器端,服务器端解析html打印页面,生成pdf打印文件;所述pdf打印文件回传至浏览器端,供用户预览及打印图像。


2.根据权利要求1所述的一种在浏览器端自定义JS模板的打印方法,其特征在于:所述JS渲染引擎生成html预览页面,具体为:所述JS渲染引擎读取用户配置的JS模板以及对应的样式参数和预先设置的预览数据,JS脚本将预览数据和样式参数填入所述JS模板的参数项中,生成一个标准的html预览页面。


3.根据权利要求1所述的一种在浏览器端自定义JS模板的打印方法,其特征在于:用户在浏览器端选择JS模板并配置参数项,然后将配置的样式参数保存至服务器端;用户确定打印时,服务器端获取要打印的业务数据和样式参数并传送至浏览器端的JS渲染引擎,所述JS渲染引擎将要打印的业务数据填入JS模板中,将样式参数填入所述JS模板的参数项中,生成html打印页面,然后再将html打印页面传送给服务器端。


4.根据权利要求1所述的一种在浏览器端自定义JS模板的打印方法,其特征在于:服务器端通过itextpdf软件解析并生成pdf打印文件。


5.根据权利要求1所述的一种在浏览器端自定义JS模板的打印方法,其特征在于:所述可变的打印选项包括表头是否每页重复,所述JS模板包含可自定义的表头标签,该标签的属性中包含是否重复,若用户设置表头每页重复,则要求标题在每页显示;JS渲染引擎在生成html打印页面时,先读取该表头标签,然后在表体内填充要打印的业务数据,每填充一行业务数据,计算表体高度是否会超过预设的页面高度,所述表体高度包含标题、已填充的业务数据以及即将要填充的该行业务数据的总高度,如果不超过,则将该行业务数据填充到表体中,如果超过,则添加一新页面,并将标题填充至表体中,然后继续填充业务数据并重复上述表体高度的判断。
<...

【专利技术属性】
技术研发人员:连航黄杉林志胜梁昌成
申请(专利权)人:厦门商集网络科技有限责任公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1