本发明涉及文件处理,特别涉及一种基于增量渲染的pdf可视化方法及系统。
背景技术:
1、随着信息技术的飞速发展,pdf文档已成为电子文档传输和存储的主要格式之一,pdf阅读器会解析每个页面对象,提取页面中的文本、图形、图片等元素,按照字体、大小、颜色等属性进行渲染;而pdf文档被解析后往往会出现部分页面可视,部分页面不可视的情况。目前pdf文档的可视化方法通常需要对整个页面进行渲染,存在以下缺陷:
2、一、对于大型pdf文档,对整个页面进行渲染会耗时较长,且对设备资源的占用较大,导致用户在浏览pdf文档时出现卡顿或页面显示不流畅的问题;
3、二、pdf 文件通常包含大量的页面和复杂的布局,一次性渲染整个pdf页面可能会出现页面排版错误、字体缺失或部分内容无法正确显示的问题,影响文档的可读性;
4、三、对pdf文档进行整个页面渲染时,若用户进行缩放或滚动等交互操作,则需要重新渲染整个页面,从而渲染速度慢,响应出现延迟,用户体验感欠佳。
5、因此,我们需要开发出一种基于增量渲染的pdf可视化方法及系统,能够将pdf文档的可视页面和非可视页面进行分开渲染,无需一次性渲染整个pdf页面;同时对已经渲染过的页面进行缓存复用,提高pdf文档的渲染速度
技术实现思路
1、本发明的目的在于提供一种基于增量渲染的pdf可视化方法及系统,以解决上述背景技术中提到的现有渲染方法耗时较长、资源占用较大以及用户体验感欠佳的问题。
2、为实现上述目的,本发明采用以下技术方案:
3、根据本发明的一个方面,提供一种基于增量渲染的pdf可视化方法,所述方法具体步骤如下:
4、解析pdf文档,获取所述pdf文档的结构信息和页面内容;
5、根据所述pdf文档的结构信息和页面内容,确定所述pdf文档中可视页面的索引范围;
6、对所述索引范围内的可视页面进行按页单独渲染,生成第一渲染图片后进行缓存;
7、通过增量分片渲染法对所述索引范围外的非可视页面进行渲染,并将渲染完成后的图片进行缓存;
8、遍历所述pdf文档,重复渲染的步骤,直至所述pdf文档的页面均被渲染。
9、根据本发明的另一个方面,提供一种基于增量渲染的pdf可视化系统,所述系统包括:文档解析模块、范围确定模块、单独渲染模块、增量渲染模块以及遍历循环模块。其中:
10、上述文档解析模块,用于解析pdf文档,获取所述pdf文档的结构信息和页面内容;
11、上述范围确定模块,用于根据所述pdf文档的结构信息和页面内容,确定所述pdf文档中可视页面的索引范围;
12、上述单独渲染模块,用于对所述索引范围内的可视页面进行按页单独渲染,生成第一渲染图片后进行缓存;
13、上述增量渲染模块,用于通过增量分片渲染法对所述索引范围外的非可视页面进行渲染,并将渲染完成后的图片进行缓存;
14、上述遍历循环模块,用于遍历所述pdf文档,重复渲染的步骤,直至所述pdf文档的页面均被渲染。
15、基于前述方案,所述pdf文档的结构信息包括:所述pdf文档的页面总数、所述pdf文档的各页面大小以及所述pdf文档中各页面的属性。所述确定pdf文档中可视页面的索引范围,具体包括:
16、遍历所述pdf文档,检查所述pdf文档中是否存在隐藏页面、空白页面以及页面内容缺失超过50%的页面;
17、剔除所述隐藏页面、空白页面以及页面内容缺失超过50%的页面,得到可视窗口的页面位置;
18、将所述可视窗口顶部的页面位置作为起始索引,并将所述可视窗口底部的页面位置作为终止索引,得到所述pdf文档中可视页面的索引范围;其中,所述可视窗口顶部与所述可视窗口底部之间是连续不断的可视页面。
19、基于前述方案,所述对索引范围内的可视页面进行按页单独渲染,具体包括步骤:
20、根据当前视窗大小得到所述可视页面显示的页面范围矩形;
21、调用pdf底层渲染接口渲染所述页面范围矩形,生成第一渲染图片并发送给缓存系统进行缓存;
22、判断所述页面范围矩形是否等于当前页面索引对应的可视页面矩形;
23、若不等于,则通过增量分片渲染法对当前视窗以外的所述当前页面索引对应的可视页面进行渲染,直至所述当前页面索引对应的可视页面渲染完成;
24、若等于,则所述当前页面索引对应的可视页面渲染完成。
25、基于前述方案,所述缓存系统缓存所述第一渲染图片之前,还包括:所述缓存系统将所述第一渲染图片与所述页面范围矩形、当前页面索引以及当前界面的缩放值进行关联。
26、基于前述方案,所述通过增量分片渲染法对索引范围外的非可视页面进行渲染之前,还包括:
27、将当前视窗偏移到非可视页面,并将所述当前视窗的中心点与所述非可视页面的中心点进行对齐,得到所述当前视窗与所述非可视页面的重合矩形;
28、将所述重合矩形作为所述非可视页面的第一页面范围矩形,并调用pdf底层渲染接口渲染所述第一页面范围矩形,生成第二渲染图片并发送给缓存系统进行缓存。
29、进一步地,通过增量分片渲染法对所述索引范围外的非可视页面进行渲染,具体包括:
30、获取第二渲染图片并作为外扩基础矩形,在所述外扩基础矩形顶部进行外扩,得到第一增量矩形;
31、调用pdf底层渲染接口渲染所述第一增量矩形,生成第一增量渲染图片;
32、将所述第一增量渲染图片与所述外扩基础矩形进行拼接,得到第二页面范围矩形并发送给所述缓存系统进行缓存;
33、将所述第二页面范围矩形作为新的外扩基础矩形,在所述新的外扩基础矩形的右侧进行外扩,得到第二增量矩形;
34、调用所述pdf底层渲染接口渲染所述第二增量矩形,生成第二增量渲染图片;
35、将所述第二增量渲染图片与所述新的外扩基础矩形进行拼接,得到第三页面范围矩形并发送给所述缓存系统进行缓存;
36、按照顺时针方向外扩的顺序,重复外扩、渲染以及生成新的外扩基础矩形的步骤,直至所述非可视页面均被渲染。
37、其中,所述顺时针方向外扩是指分别在外扩基础矩形的顶部、右侧、底部和左侧进行外扩,且在进行外扩时,若外扩方向为顶部或底部,则设置增量矩形的宽度与其对应的外扩基础矩形的宽度一致,高度为所述对应的外扩基础矩形高度的1/2;若外扩方向为右侧或左侧,则设置增量矩形的宽度为所述对应的外扩矩形宽度的1/2,高度与所述对应的外扩矩形高度一致。进一步地,所述增量矩形需在pdf文档的当前页面范围内;若外扩时,设置的所述增量矩形的高度或宽度超出了所述pdf文档的当前页面范围,则将所述pdf文档的当前页面边界作为所述增量矩形的高度或宽度的上限。
38、基于前述方案,当生成增量渲染图片并与其对应的外扩基础矩形进行拼接时,按照外扩时的方向进行拼接。
39、由上述技术方案可知,本发明与现有技术相比,至少具备以下优点和积极效果:
40、(1)本发明通过确定pdf文档解析后的可视页面范围,并对可视页面和非可视页面进行分开渲染,能够有效缓解整页渲染时设备资源占用较大的问题,提升渲染速度。
41、(2)本发明对已经渲染过的页面进行缓存复用,减少了对相同页面的重复渲染,提升渲染效率的同时也能使用户在进行缩放或滚动等交互操作时更加流畅,提升用户体验感。
42、(3)本发明通过增量分片渲染法对非可视页面进行逐步渲染,在保证pdf文档的页面均被渲染的同时降低对设备资源的占用,不仅能有效解决整页渲染时部分内容缺失的问题,还能减少页面卡顿的情况,提升渲染质量。
1.一种基于增量渲染的pdf可视化方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的pdf可视化方法,其特征在于,所述按页单独渲染,具体包括:
3.根据权利要求2所述pdf可视化方法,其特征在于,所述缓存系统缓存所述第一渲染图片之前,还包括:所述缓存系统将所述第一渲染图片与所述页面范围矩形、所述当前页面索引以及当前界面的缩放值进行关联。
4.根据权利要求1所述的pdf可视化方法,其特征在于,所述通过增量分片渲染法对所述索引范围外的非可视页面进行渲染之前,还包括:
5.根据权利要求1所述的pdf可视化方法,其特征在于,所述通过增量分片渲染法对所述索引范围外的非可视页面进行渲染,具体包括:
6.根据权利要求5所述的pdf可视化方法,其特征在于,所述进行外扩时,若外扩方向为顶部或底部,则设置增量矩形的宽度与其对应的外扩基础矩形的宽度一致,高度为所述对应的外扩基础矩形高度的1/2;若外扩方向为右侧或左侧,则设置增量矩形的宽度为所述对应的外扩矩形宽度的1/2,高度与所述对应的外扩矩形高度一致。
7.根据权利要求5或6所述的pdf可视化方法,其特征在于,所述进行外扩时,还包括:所述增量矩形需在pdf文档的当前页面范围内;若外扩时,设置的所述增量矩形的高度或宽度超出了所述pdf文档的当前页面范围,则将所述pdf文档的当前页面边界作为所述增量矩形的高度或宽度的上限。
8.根据权利要求1所述的pdf可视化方法,其特征在于,所述pdf文档的结构信息包括:所述pdf文档的页面总数、所述pdf文档的各页面大小以及所述pdf文档中各页面的属性。
9.根据权利要求1所述的pdf可视化方法,其特征在于,所述确定所述pdf文档中可视页面的索引范围,具体包括:
10.一种基于增量渲染的pdf可视化系统,其特征在于,包括: