System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,并且更具体地涉及一种动态表单数据打印排版布局的方法、装置、设备及可读介质。
技术介绍
1、当前内容打印技术已经发展的比较成熟,业内比较主流的做法是在服务端打印内容进行排版和预渲染,该方法资源消耗相对较大,且严重依赖后端服务,也有部分在客户端实现的实践,但对于动态数据的渲染排版也都不太理想。
技术实现思路
1、有鉴于此,本专利技术实施例的目的在于提出一种动态表单数据打印排版布局的方法、装置、设备及可读介质,通过使用本专利技术的技术方案,能够解决动态数据排版效率和效果的问题,本专利技术的方法适用于所有需要打印数据的场景,且不依赖第三方组件。
2、基于上述目的,本专利技术的实施例的一个方面提供了一种动态表单数据打印排版布局的方法,包括以下步骤:
3、定义打印格式,并在需要打印时获取定义的打印格式;
4、获取待打印的数据,并基于待打印的数据初始化预渲染容器;
5、基于预渲染容器和待打印的数据对数据的布局进行排版计算;
6、响应于排版计算完成,将待打印的数据进行打印。
7、根据本专利技术的一个实施例,定义打印格式,并在需要打印时获取定义的打印格式包括:
8、通过拖放和配置定义打印格式;
9、用户指定静态内容和动态内容相互之间的位置关系;
10、在需要打印时,调用getuserprintformat方法获取定义的打印格式。
11、根据本专利技术的一个实施
12、通过getprintdata方法获取待打印的数据,待打印的数据包括外部api数据、自定义数据和集成系统数据。
13、根据本专利技术的一个实施例,基于待打印的数据初始化预渲染容器包括:
14、构建一个预渲染容器,并根据打印格式中的页面宽度和高度设置对应的宽度和高度;
15、将静态内容中的每页重复内容生成到容器中的对应的位置,并获取页面内非重复的数据内容区域的可用高度和宽度。
16、根据本专利技术的一个实施例,基于预渲染容器和待打印的数据对数据的布局进行排版计算包括:
17、根据打印格式对内容位置进行配置,自上而下进行数据的预加载;
18、响应于数据为非重复静态内容,在渲染后记录数据的高度和宽度;
19、响应于数据为非重复动态内容,判断当前打印格式中每条数据是否是固定高度;
20、响应于当前打印格式中每条数据是固定高度,判断当前页面剩余空间是否大于数据行数与固定高度的乘积;
21、响应于当前页面剩余空间大于数据行数与固定高度的乘积,直接渲染数据。
22、根据本专利技术的一个实施例,还包括:
23、响应于当前页面剩余空间不大于数据行数与固定高度的乘积,使用剩余空间除以固定高度以判断当前空间可渲染行数,并对当前页数据进行渲染;
24、响应于渲染完当前页,在容器中创建一个同样大小的新的一页作为当前页,并初始化设置的固定区域;
25、再次计算当前页可放置的数据行数,依次类推直至当前动态数据渲染完成。
26、根据本专利技术的一个实施例,还包括:
27、响应于每条数据的高度不固定,创建一个影子容器,并逐行渲染数据;
28、计算影子容器的高度,并将高度进行累加直到大于当前预渲染容器剩余空间;
29、在容器中创建一个同样大小的新的一页作为当前页,并初始化设置的固定区域;
30、再次逐行渲染数据,并将高度进行累加直到大于当前预渲染容器剩余空间,以此类推直至当前动态数据渲染完成。
31、本专利技术的实施例的另一个方面,还提供了一种动态表单数据打印排版布局的装置,装置包括:
32、定义模块,定义模块配置为定义打印格式,并在需要打印时获取定义的打印格式;
33、获取模块,获取模块配置为获取待打印的数据,并基于待打印的数据初始化预渲染容器;
34、排版模块,排版模块配置为基于预渲染容器和待打印的数据对数据的布局进行排版计算;
35、打印模块,打印模块配置为响应于排版计算完成,将待打印的数据进行打印。
36、本专利技术的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:
37、至少一个处理器;
38、以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
39、本专利技术的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
40、本专利技术具有以下有益技术效果:本专利技术实施例提供的动态表单数据打印排版布局的方法,通过定义打印格式,并在需要打印时获取定义的打印格式;获取待打印的数据,并基于待打印的数据初始化预渲染容器;基于预渲染容器和待打印的数据对数据的布局进行排版计算;响应于排版计算完成,将待打印的数据进行打印的技术方案,能够解决动态数据排版效率和效果的问题,本专利技术的方法适用于所有需要打印数据的场景,且不依赖第三方组件。
本文档来自技高网...【技术保护点】
1.一种动态表单数据打印排版布局的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,定义打印格式,并在需要打印时获取定义的打印格式包括:
3.根据权利要求1所述的方法,其特征在于,获取待打印的数据包括:
4.根据权利要求1所述的方法,其特征在于,基于待打印的数据初始化预渲染容器包括:
5.根据权利要求1所述的方法,其特征在于,基于预渲染容器和待打印的数据对数据的布局进行排版计算包括:
6.根据权利要求5所述的方法,其特征在于,还包括:
7.根据权利要求6所述的方法,其特征在于,还包括:
8.一种动态表单数据打印排版布局的装置,其特征在于,所述装置包括:
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
【技术特征摘要】
1.一种动态表单数据打印排版布局的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,定义打印格式,并在需要打印时获取定义的打印格式包括:
3.根据权利要求1所述的方法,其特征在于,获取待打印的数据包括:
4.根据权利要求1所述的方法,其特征在于,基于待打印的数据初始化预渲染容器包括:
5.根据权利要求1所述的方法,其特征在于,基于预渲染容器和待打印的数据对数据的布局进...
【专利技术属性】
技术研发人员:李伟龙,徐同明,王继东,石磊,李志刚,刘本熙,吴采莹,
申请(专利权)人:浪潮通用软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。