针对表单的自定义打印配置、打印预览和打印处理方法与流程

摘要: 本公开涉及自定义打印模板领域,特别地涉及一种针对表单的自定义打印配置方法、针对表单的自定义打印预览方法和针对表单的打印处理方法。背景技术:1、在低代码(low-...
针对表单的自定义打印配置、打印预览和打印处理方法与流程

本公开涉及自定义打印模板领域,特别地涉及一种针对表单的自定义打印配置方法、针对表单的自定义打印预览方法和针对表单的打印处理方法。

背景技术:

1、在低代码(low-code/no-code)开发平台中,业务人员通常在浏览器侧通过可视化方式构建表单及其字段配置,并需要按照面向受众的版式将表单数据生成可供打印的纸质单据。该类业务场景的功能需求包括:基于表单元数据的所见即所得拖拽设计;支持普通字段、富文本字段、子表字段、流程审批字段等多种字段类型;支持纸张类型(a3/a4/a5/b3/b5)、横竖方向、页边距、水印、彩色/黑白等页面级打印参数的可视化配置;支持模板复用、字段依赖追踪及多终端浏览器打印调用。

2、而传统打印模式设计仍依赖专业开发人员编写代码(比如,html、css、javascript等),由于编写代码的门槛较高,非技术人员无法自主完成;并且,默认模板修改繁琐,需重新编码并部署,灵活性差、难以快速相应业务需求变化;另外,还缺乏可视化设计页面,模板布局、样式调整依赖手动调试,效率低下。

3、当前,相关技术仍存在如下技术缺陷:

4、(1)现有浏览器打印方案不能基于低代码表单的字段元数据驱动建立模板,无法根据字段类型(普通字段、富文本字段、子表字段、流程审批字段)自动选择不同的组件模型并成对生成标签子组件与取值子组件;

5、(2)现有方案中模板设计态与运行态紧耦合,预览/打印时直接复用设计态占位内容,难以实现按表单实例取数并按字段类型进行差异化的运行态渲染;

6、(3)现有方案缺乏针对低代码表单子表字段(依赖子字段列表生成表头并逐行渲染)和流程字段(按审批操作记录输出操作人/时间/动作/意见)的专用运行态渲染机制;

7、(4)现有方案对纸张类型、横竖方向、页边距、水印、彩色/黑白模式等页面级打印参数缺乏作为模板根级配置的统一抽象与可视化控制,导致设计态与打印态尺寸不一致、留白难以去除、颜色模式难以受控转换;

8、(5)现有浏览器打印调用直接在主文档上执行window.print(),难以避免主文档样式与脚本对打印输出的干扰,也难以将打印文件名与模板配置解耦;

9、(6)现有方案未建立模板结构树与字段标识的双向引用关系,难以支撑字段依赖追踪、模板复用与跨模板的字段一致性校验。

技术实现思路

1、本发明的目的在于至少提供一种针对表单的自定义打印配置方法、针对表单的自定义打印预览方法和针对表单的打印处理方法,旨在解决上述各现有技术中均未覆盖的问题,即如何在浏览器侧通过低代码方式端到端地完成“基于表单元数据的字段类型自适应模板构建—设计态/运行态分离的差异化渲染—页面级打印参数根级控制—隔离iframe打印调用”的全链路自定义打印。相较于现有技术,降低了配置门槛:非技术人员可通过可视化操作设计打印模板,无需掌握代码;提高了打印效率:模板设计、修改、预览全程在线完成,无需部署,响应速度提升;可复用性高:模板可以复制,降低重复开发成本。

2、为解决上述技术问题,本技术的至少一个实施例提供了一种针对表单的自定义打印配置方法,所述方法包括:

3、响应于针对表单的打印配置操作,进入所述表单对应打印模板的编辑页面;其中,在所述编辑页面中包含画布和基于所述表单的元数据字段生成的字段列表,所述打印模板的结构树以嵌套的数据结构记录所述画布中各控件的类型、属性配置及层级关系,所述画布为所述结构树的图形化渲染界面;

4、响应于将所述字段列表中的字段拖拽至所述画布中的操作,获取所述字段的字段标题并生成所述字段对应的占位内容;在所述画布中渲染用于展示所述字段标题的标签控件,以及渲染用于展示所述占位内容的取值控件,并将各控件的配置参数保存在所述结构树中;

5、响应于针对所述打印模板的保存操作,将各控件对应配置参数中的字段标识写入所述结构树的根级,并将所述结构树、所述打印模板的模板配置信息和模板管理信息关联存储,以作为所述打印模板的打印配置数据并保存。

6、本技术的至少一个实施例还提供了一种针对表单的自定义打印预览方法,包括:

7、响应于针对打印模板的打印预览操作,从所述打印模板的结构树中获取保存各控件对应字段标识的字段标识集合;其中,所述打印模板基于如上所述的针对表单的自定义打印配置方法生成;

8、基于所述打印模板对应的表单,获取所述字段标识集合中各字段标识对应的字段值,并基于所有字段值生成待渲染数据对象;

9、基于所述结构树和所述待渲染数据对象,渲染生成所述打印模板的预览页面。

10、本技术的至少一个实施例还提供了一种针对表单的打印处理方法,包括:

11、响应于针对表单的打印配置操作,进入所述表单对应打印模板的编辑页面;其中,在所述编辑页面中包含画布和基于所述表单的元数据字段生成的字段列表,所述打印模板的结构树以嵌套的数据结构记录所述画布中各控件的类型、属性配置及层级关系,所述画布为所述结构树的图形化渲染界面;

12、响应于将所述字段列表中的字段拖拽至所述画布中的操作,获取所述字段的字段标题并生成所述字段对应的占位内容;在所述画布中渲染用于展示所述字段标题的标签控件,以及渲染用于展示所述占位内容的取值控件,并将各控件的配置参数保存在所述结构树中;

13、响应于针对所述打印模板的保存操作,将各控件对应配置参数中的字段标识写入所述结构树的根级,并将所述结构树、所述打印模板的模板配置信息和模板管理信息关联存储,以作为所述打印模板的打印配置数据并保存;

14、响应于针对打印模板的打印预览操作,基于各控件节点对应的字段标识从所述表单中获取各字段标识对应的字段值,并基于所有字段值生成待渲染数据对象;

15、基于所述结构树和所述待渲染数据对象,渲染生成所述打印模板的预览页面。

16、本技术的至少一个实施例还提供了一种针对表单的自定义打印配置装置,包括:

17、模板编辑模块,用于响应于针对表单的打印配置操作,进入所述表单对应打印模板的编辑页面;其中,在所述编辑页面中包含画布和基于所述表单的元数据字段生成的字段列表,所述打印模板的结构树以嵌套的数据结构记录所述画布中各控件的类型、属性配置及层级关系,所述画布为所述结构树的图形化渲染界面;

18、页面配置模块,用于响应于将所述字段列表中的字段拖拽至所述画布中的操作,获取所述字段的字段标题并生成所述字段对应的占位内容;在所述画布中渲染用于展示所述字段标题的标签控件,以及渲染用于展示所述占位内容的取值控件,并将各控件的配置参数保存在所述结构树中;

19、模板保存模块,用于响应于针对所述打印模板的保存操作,将各控件对应配置参数中的字段标识写入所述结构树的根级,并将所述结构树、所述打印模板的模板配置信息和模板管理信息关联存储,以作为所述打印模板的打印配置数据并保存。

20、本技术的至少一个实施例还提供了一种针对表单的自定义打印预览装置,包括:

21、字段标识集合获取模块,用于响响应于针对打印模板的打印预览操作,从所述打印模板的结构树中获取保存各控件对应字段标识的字段标识集合;其中,所述打印模板基于如上所述的针对表单的自定义打印配置方法生成;

22、数据对象生成模块,用于基于所述打印模板对应的表单,获取所述字段标识集合中各字段标识对应的字段值,并基于所有字段值生成待渲染数据对象;

23、渲染模块,用于基于所述结构树和所述待渲染数据对象,渲染生成所述打印模板的预览页面。

24、本技术的至少一个实施例还提供了一种针对表单的打印处理装置,包括:

25、模板编辑模块,用于响应于针对表单的打印配置操作,进入所述表单对应打印模板的编辑页面;其中,在所述编辑页面中包含画布和基于所述表单的元数据字段生成的字段列表,所述打印模板的结构树以嵌套的数据结构记录所述画布中各控件的类型、属性配置及层级关系,所述画布为所述结构树的图形化渲染界面;

26、页面配置模块,用于响应于将所述字段列表中的字段拖拽至所述画布中的操作,获取所述字段的字段标题并生成所述字段对应的占位内容;在所述画布中渲染用于展示所述字段标题的标签控件,以及渲染用于展示所述占位内容的取值控件,并将各控件的配置参数保存在所述结构树中;

27、模板保存模块,用于响应于针对所述打印模板的保存操作,将各控件对应配置参数中的字段标识写入所述结构树的根级,并将所述结构树、所述打印模板的模板配置信息和模板管理信息关联存储,以作为所述打印模板的打印配置数据并保存;

28、数据对象生成模块,用于响应于针对打印模板的打印预览操作,基于各控件节点对应的字段标识从所述表单中获取各字段标识对应的字段值,并基于所有字段值生成待渲染数据对象;

29、渲染模块,用于基于所述结构树和所述待渲染数据对象,渲染生成所述打印模板的预览页面。

30、本技术的至少一个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现如上所述方法的步骤。

31、本技术的至少一个实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述方法的步骤。

32、本技术的至少一个实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述方法的步骤。

33、本技术提供的针对表单的自定义打印配置方法、针对表单的自定义打印预览方法和针对表单的打印处理方法、针对表单的自定义打印配置装置、针对表单的自定义打印预览装置、针对表单的打印处理装置、存储介质、电子设备和计算机程序产品,相对于现有技术而言,通过维护字段类型与组件元数据的映射表,使不同字段类型在拖拽时自动匹配对应的专用组件模型,降低了用户手动选择和配置组件的认知负担;通过拖拽时自动生成“标签子组件”与“取值子组件”成对子节点,避免了用户分别拖拽标签与取值组件的重复操作,使标签与取值的关联关系以父子/兄弟节点的形式固化于模板结构树中,为后续的字段引用采集(深度优先遍历成对节点收集fieldidset)和设计态/运行态分离渲染(双套组件映射使标签显示占位、取值注入真实数据)提供了结构基础;通过保存模板时同步存储fieldrefs字段引用集合,为表单字段变更时的反向依赖定位与告警、按实例取数时的按需过滤、以及跨模板复用时的字段完备性校验提供了数据支撑;通过将纸张类型、横竖方向、页边距、水印、彩色/黑白模式作为模板根级配置,设计态与运行态输出尺寸严格一致,结合黑白模式受控样式注入与隔离iframe打印调用,实现了所见即所得的精细化打印控制,并在打印调用前后动态切换文档标题作为打印文件名,无需依赖浏览器插件即可按模板自定义文件名。

34、进一步地,所述元数据字段包括以下中的至少一项:

35、字段标识、字段标题、字段类型、格式化规则和子字段列表。

36、进一步地,生成各控件对应配置数据的步骤,包括:

37、基于所述字段的字段标识,从所述元数据字段中获取所述字段的字段标题、格式化规则;

38、基于所述字段标识、所述字段标题和样式配置,生成所述标签控件的属性配置数据;

39、基于所述字段标识、所述字段标题、所述格式化规则和样式配置,生成所述标签控件的属性配置数据;或者,基于所述字段标识、所述字段标题、所述格式化规则、样式配置和所述字段对应的子字段列表,生成所述标签控件的属性配置数据。

40、进一步地,渲染所述取值控件的步骤包括:

41、获取所述字段的字段类型,通过预设的渲染策略映射关系确定所述字段类型对应的目标渲染策略;

42、基于所述目标渲染策略,在所述画布中渲染用于展示所述占位内容的取值控件。

43、进一步地,所述目标渲染策略包括:文本型控件渲染策略、富文本型控件渲染策略、时间线型控件渲染策略和表单型控件渲染策略;所述基于所述目标渲染策略,在所述画布中渲染用于展示所述占位内容的取值控件,包括:

44、当所述目标渲染策略为时间线型控件渲染策略时,基于所述占位内容在所述画布中渲染时间线型控件;其中,所述时间线型控件以时间线的形式在所述编辑页面中展示所述占位内容;

45、当所述目标渲染策略为表单型控件渲染策略时,基于所述占位内容在所述画布中渲染表单型控件;其中,所述表单型控件以二维数据表格的形式在所述编辑页面中展示所述占位内容;

46、当所述目标渲染策略为文本型控件渲染策略时,基于所述占位内容在所述画布中渲染文本型控件;其中,所述文本型控件以普通字符串形式展示所述占位内容;

47、当所述目标渲染策略为富文本型控件渲染策略时,基于所述占位内容在所述画布中渲染富文本型控件;其中,所述富文本型控件以普通字符串形式展示所述占位内容。

48、进一步地,所述响应于针对所述打印模板的保存操作,将各控件对应配置参数中的字段标识写入所述结构树的根级,并将所述结构树、所述打印模板的模板配置信息和模板管理信息关联存储,以作为所述打印模板的打印配置数据并保存,包括:

49、遍历所述打印模板的结构树,基于各控件的配置参数获得各控件的字段标识;

50、将所有字段标识保存在字段标识集合中,并将所述字段标识集合写入所述结构树的根级;

51、将所述结构树以及所述打印模板的模板配置信息和模板管理信息进行关联存储,获得所述打印模板的打印配置数据并保存。

52、进一步地,所述模板配置信息包括以下中的至少一项:纸张类型、横竖方向、页边距、水印和颜色模式,所述模板管理信息包括以下中的至少一项:模板标识、模板名称、模板类型、模板状态、模板描述、使用范围、所属表单模板版本和创建时间。

53、进一步地,所述针对表单的自定义打印配置方法还包括:

54、响应于所述表单的字段更新操作,获取已更新字段的字段标识,以及所述表单对应的所有打印模板;

55、针对任一打印模板,从打印模板的结构树中获取字段标识集合;

56、根据所述字段标识,从各字段标识集合中分别进行反向检索,以获得引用所述已更新字段的打印模板集合;

57、对所述打印模板集合中的各打印模板,进行告警提示。

58、进一步地,所述针对表单的自定义打印配置方法还包括:

59、响应于针对打印模板的打印操作,在弹出打印预览对话框之前,获取所述打印模板中画布对应的html内容,创建与所述编辑页面的文档环境相隔离的iframe,并将所述html内容写入所述iframe;

60、从所述打印模板的模板管理信息中获取由用户自定义的模板名称,将所述自定义的模板名称作为所述iframe的文档标题,并将所述自定义的模板名称作为浏览器打印输出的默认文件名。

61、进一步地,所述针对表单的自定义打印配置方法还包括:

62、响应于所述画布中控件的选中操作,显示样式配置调整页面;其中,所述样式配置调整页面用于调整选中控件的样式配置;

63、其中,在所述样式配置调整页面中包含至少一个布局调整控件,响应于所述布局调整控件的交互操作调整选中控件的样式配置,并将调整后的样式配置数据保存在所述选中控件的配置参数中。

64、进一步地,在所述针对表单的自定义打印预览方法中,渲染所述预览页面的步骤,包括:

65、针对所述预览页面中的任一取值控件,基于取值控件的字段标识从所述待渲染数据对象中获得待渲染内容;从取值控件的配置参数中获得格式化规则和样式配置,并根据所述格式化规则和所述样式配置渲染所述待渲染内容;其中:

66、若所述取值控件为时间线型控件,则以时间线的形式展示所述待渲染内容;

67、若所述取值控件为表单型控件,则以二维数据表格的形式展示所述待渲染内容;

68、若所述取值控件为文本型控件,则以纯文本形式展示所述待渲染内容;

69、若所述取值控件为富文本型控件,则将所述待渲染内容作为html内容进行渲染展示。