System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及技术处理数据领域,尤其涉及基于无头浏览器生成pdf的方法、系统及设备。
技术介绍
1、传统的pdf报告生成方法通常采用将数据填充到预先设计好的模版图片中的方式。这些模版图片包含了报告的基本布局、格式和样式,但是由于数据填充是绝对定位的,无法形成正确的文档流,这可能导致布局混乱和内容错位。
2、即现有技术中,传统的pdf报告生成方法中由于填充信息的绝对定位,无法形成正确的文档流,可能导致布局混乱和内容错位。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供基于无头浏览器生成pdf的方法、系统及设备,以解决现有技术中传统的pdf报告生成方法中由于填充信息的绝对定位,无法形成正确的文档流,可能导致布局混乱和内容错位的问题。
2、根据本专利技术实施例的第一方面,提供一种基于无头浏览器生成pdf的方法,包括:
3、得到待填充的数据,以及预设的html模版;
4、利用预设的无头浏览器加载所述html模版;
5、基于所述预设的无头浏览器加载所述html模版的结果,将所述待填充的数据填充至所述html模版中的对应位置,得到第一数据页;
6、利用预设的css引擎,渲染所述第一数据页,得到预设形式的pdf文件。
7、进一步地,所述利用预设的无头浏览器加载所述html模版,包括:
8、利用预设的无头浏览器新建一个标签页;
9、利用新建的标签页加载所述html模版。
10、
11、基于所述预设的无头浏览器加载所述html模版的结果,调用document.getelementbyid()函数将所述待填充的数据填充至所述html模版中的对应位置。
12、进一步地,所述基于所述预设的无头浏览器加载所述html模版的结果,将所述待填充的数据填充至所述html模版中的对应位置,得到第一数据页之后,利用预设的css引擎,渲染所述第一数据页,得到预设形式的pdf文件之前,还包括:
13、利用预设的无头浏览器中的渲染进程中的主线程解析第一数据页,并构建出结构化的树状数据结构dom树。
14、进一步地,所述利用预设的css引擎,渲染所述第一数据页,得到预设形式的pdf文件,包括:
15、利用预设的css引擎,收集、划分和索引样式表中存在的样式规则;
16、利用所述样式规则,为结构化的树状数据结构dom树中的每个元素进行选择器匹配,并为匹配的节点执行样式设置;
17、利用css层叠样式规则为节点生成最终的计算样式,得到预设形式的pdf文件。
18、进一步地,所述方法还包括:
19、调用window.getcomputedstyle()函数获取利用css层叠样式规则为节点生成最终的计算样式的相关数据。
20、根据本专利技术实施例的第二方面,提供一种基于无头浏览器生成pdf的系统,应用于上述中任一项所述基于无头浏览器生成pdf的方法,所述系统包括:
21、获取模块,用于得到待填充的数据,以及预设的html模版;
22、第一数据处理模块,用于利用预设的无头浏览器加载所述html模版;
23、第二数据处理模块,用于基于所述预设的无头浏览器加载所述html模版的结果,将所述待填充的数据填充至所述html模版中的对应位置,得到第一数据页;
24、第三数据处理模块,用于利用预设的css引擎,渲染所述第一数据页,得到预设形式的pdf文件。
25、根据本专利技术实施例的第三方面,提供一种基于无头浏览器生成pdf的设备,所述设备包括:
26、存储器,其上存储有可执行程序;
27、处理器,用于执行所述存储器中的所述可执行程序,以实现上述中任一项所述方法的步骤。
28、本专利技术的实施例提供的技术方案可以包括以下有益效果:
29、可以理解的是,本专利技术提供的技术方案,通过得到待填充的数据,以及预设的html模版;利用预设的无头浏览器加载所述html模版;基于所述预设的无头浏览器加载所述html模版的结果,将所述待填充的数据填充至所述html模版中的对应位置,得到第一数据页;最后,利用预设的css引擎,渲染所述第一数据页,得到预设形式的pdf文件。可以理解的是,本专利技术提供的技术方案,通过预设的css引擎,渲染所述第一数据页,帮助数据页形成正确的文档流,解决传统的pdf报告生成方法中因无法形成正确的文档流,可能导致布局混乱和内容错位的问题。
30、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本专利技术。
本文档来自技高网...【技术保护点】
1.基于无头浏览器生成pdf的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述利用预设的无头浏览器加载所述HTML模版,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述预设的无头浏览器加载所述HTML模版的结果,将所述待填充的数据填充至所述HTML模版中的对应位置,得到第一数据页,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述预设的无头浏览器加载所述HTML模版的结果,将所述待填充的数据填充至所述HTML模版中的对应位置,得到第一数据页之后,利用预设的CSS引擎,渲染所述第一数据页,得到预设形式的pdf文件之前,还包括:
5.根据权利要求1所述的方法,其特征在于,所述利用预设的CSS引擎,渲染所述第一数据页,得到预设形式的pdf文件,包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.基于无头浏览器生成pdf的系统,应用于权利要求1-6中任一项所述基于无头浏览器生成pdf的方法,其特征在于,所述系统包括:
8.基于无
...【技术特征摘要】
1.基于无头浏览器生成pdf的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述利用预设的无头浏览器加载所述html模版,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述预设的无头浏览器加载所述html模版的结果,将所述待填充的数据填充至所述html模版中的对应位置,得到第一数据页,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述预设的无头浏览器加载所述html模版的结果,将所述待填充的数据填充至所述html模版中的对应位置,...
【专利技术属性】
技术研发人员:刘梓杰,高斌,邹琼,周双全,
申请(专利权)人:深圳市瑞云科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。