掌桥专利:专业的专利平台
掌桥专利
首页

文档在线预览方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:32:36


文档在线预览方法、装置、电子设备及存储介质

技术领域

本申请涉及计算机技术领域,具体涉及网络文档处理技术领域,尤其涉及一种文档在线预览方法、装置、电子设备及存储介质。

背景技术

PDF(Portable Document Format,便携文件格式)是一种电子文件格式,在客户端时代,PDF阅读器主要以本地预览为主,国内产品中比较有名气的是Adobe PDF Reader和福昕PDF阅读器。

随着互联网快速发展,PDF在线预览已经越来越强烈的被用户所需求。用户期望的是更快的打开速度,而相关技术中通常是“先下载后预览”的方式,整个文件的下载时间就成为一个非常严重的问题。如何能够提高PDF在线加载速度已经成为亟待解决的问题。

发明内容

本申请提供了一种文档在线预览的方法、装置、设备以及存储介质。

根据本申请的第一方面,提供了一种文档在线预览方法,包括:

从云端服务器获取所述文档的交叉引用表,并根据所述交叉引用表构建有序数据块映射表数组;

根据所述交叉引用表的位置获取当前待访问页面,并提取所述当前待访问页面中的所有依赖对象以构建所述当前待访问页面所需的数据块数组;

根据所述有序数据块映射表数组对所述当前待访问页面所需的数据块数组之中数据块的网络读取操作进行合并,并获得合并后的网络读取请求;

根据所述合并后的网络读取请求从所述云端服务器获取对应的数据内容;

根据所述数据内容进行页面渲染,并将渲染后得到页面进行显示。

根据本申请的第二方面,提供了一种文档在线预览的装置,包括:

第一获取模块,用于从云端服务器获取所述文档的交叉引用表;

第一构建模块,用于根据所述交叉引用表构建有序数据块映射表数组;

第二获取模块,用于根据所述交叉引用表的位置获取当前待访问页面;

第二构建模块,用于提取所述当前待访问页面中的所有依赖对象以构建所述当前待访问页面所需的数据块数组;

合并模块,用于根据所述有序数据块映射表数组对所述当前待访问页面所需的数据块数组之中数据块的网络读取操作进行合并,并获得合并后的网络读取请求;

第三获取模块,用于根据所述合并后的网络读取请求从所述云端服务器获取对应的数据内容;

显示模块,用于根据所述数据内容进行页面渲染,并将渲染后得到页面进行显示。

根据本申请的第三方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面实施例所述的文档在线预览方法。

根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请第一方面实施例所述的文档在线预览方法。

根据本申请的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本申请第一方面实施例所述的文档在线预览方法。

根据本申请的技术解决了现有技术中如何提高文件在线预览加载速度的问题,通过构建有序数据块映射表数组,并根据有序数据块映射表数组对当前待访问页面所需数据块的网络读取操作进行合并,可以减少网络请求的次数,提高网络读取效率,从而提高了文档在线预览加载速度。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是根据本申请实施例提出的一种文件在线预览方法的流程图;

图2是根据本申请实施例提出的一种文件在线预览方法中建立有序数据映射表数组的流程图;

图3是根据本申请实施例提出的一种文件在线预览方法中对数据块的网络读取方式进行合并操作的流程图;

图4是根据本申请实施例提出的一种文件在线预览方法中的另一种对数据块的网络读取方式进行合并操作的流程图;

图5是根据本申请实施例提出的另一种文件在线预览方法的流程图;

图6是根据本申请实施例提出的又一种文件在线预览方法的流程图;

图7是根据本申请实施例提出的一种文件在线预览装置的结构框图;

图8是根据本申请实施例提出的另一种文件在线预览装置的结构框图;

图9是用来实现本申请实施例的文件在线预览方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

目前,PDF文档在线预览大多采用先下载,后预览的方式,即文档需要先执行下载操作,下载后再进行本地预览,这样用户就只能等待整个文档的下载完毕后才能预览该文档,所以如何让用户更快地预览文档成为了一个非常重要的问题。

为了解决上述问题,本申请提出了一种文档在线预览方法、装置、电子设备及存储介质。

图1是根据本申请一个实施例的文档在线预览方法的流程图。需要说明的是,本申请实施例的文档在线预览方法可应用于本申请实施例的文档在线预览装置,该文档在线预览装置可被配置于电子设备。

需要说明的是,本申请实施例提供的文档在线预览方法可适用于PDF文档,本申请中的一些实施例将以PDF为例进行说明。PDF文档格式包括文件头(Header)、文件体(Body)、交叉引用表(Cross-referencetable)和文件尾(Trailer)四部分。其中,文件头是PDF文档的第一行,指定了文档使用的PDF规范的版本号;文件体(Body)由该PDF文档中用到的一系列对象组成,其中的对象在本申请实施例中统一成数据块;文件体(Body)部分用于保存向用户显示的所有文档数据,且文件体(Body)部分中的内容是以页内数据块建立的索引;交叉引用表(Cross-referencetable)是为了能对间接对象进行随机存取而设立的一个间接对象的地址索引表;文件尾(Trailer)是整个PDF文档的入口点,一般PDF读取器都从文件尾开始读取PDF。

如图1所示,该文档在线预览方法可以包括:

步骤101,从云端服务器获取文档的交叉引用表,并根据交叉引用表构建有序数据块映射表数组。

需要说明的是,PDF文档的文件尾(Trailer)给出了该PDF文档交叉引用表的地址,所以为了获取文档的交叉引用表,需要先获取文档的文件尾信息。从云端服务器获取文档的交叉引用表可以通过以下方式实现:从云端服务器获取文档的文件尾信息;根据文件尾信息从云端服务器获取文档的交叉引用表。

其中,文档的文件尾信息中的startxref字段后的数字即为该文档交叉引用表在文档中的物理偏移地址信息,从而根据交叉引用表的物理偏移地址信息从云端服务器获取文档的交叉引用表。

需要说明的是,文档中的交叉引用表包含文档中包括的数据块总数量、各数据块编号、各数据块在该文档中的物理偏移地址等信息,且从上到下排列的数据块的物理偏移地址并不是有序排列的。

所以,为实现将文档内容有序排列,提高文档在线预览加载速度,本申请实施例根据交叉引用表构建有序数据块映射表数组用于有序的文档页面数据索引。该有序数据块映射表数组包括文档中的所有数据块,及各数据块的编号、地址信息和大小信息等,且该有序数据块映射表数组中所有的数据块以各数据块在文档中的物理偏移地址由小到大的顺序排列。

步骤102,根据交叉引用表的位置获取当前待访问页面,并提取当前待访问页面中的所有依赖对象以构建当前待访问页面所需的数据块数组。

在本申请实施例中,根据交叉引用表的位置获取当前待访问页面,其中当前待访问页面就是待预览的页面。由于文档中每个页面均包含需要呈现的数据信息,也就是说文档中每一页均由一个或多个数据块组成,所以此处提取当前待访问页面中的所有依赖对象即为提取当前待访问页面中的所依赖的数据块。其中,提取当前待访问页面中的所有依赖对象包括当前待访问页面中的数据块的数量和各数据块的编号,根据提取的当前待访问页面中的数据块的数量和各数据块的编号构建当前待访问页面所需的数据块数组。

步骤103,根据有序数据块映射表数组对当前待访问页面所需的数据块数组之中数据块的网络读取操作进行合并,并获得合并后的网络读取请求。

需要说明的是,页面的预览需要先通过网络读取任务向云端服务器进行请求以获取页面加载所需的数据,其中,文档页面预览的加载速度与网络读取请求的数据量和网络读取请求的次数有很大的关系,可以理解,网络读取请求的数据量越小或者网络读取请求的次数越少,文档页面预览的加载速度越快。因此,在本步骤中,可根据有序数据块映射表数组对当前待访问页面所需的数据块数组之中数据块的网络读取操作进行合并,以便基于合并后的网络读取请求向云端服务器获取对应的数据内容。

步骤104,根据合并后的网络读取请求从云端服务器获取对应的数据内容。

步骤105,根据数据内容进行页面渲染,并将渲染后得到页面进行显示。

根据本申请实施例的文档在线预览的方法,通过构建有序的数据块映射表数据组,并根据有序的数据块映射表数据组对当前待访问页面所需数据块的网络读取操作进行合并,有效地减少了网络请求的次数,同时每次网络请求以数据块为单位,从而提高了文档在线预览的加载速度。

在本申请实施例中,根据交叉引用表构建有序数据块映射表数组包括:从叉引用表中获取文档所包含的数据块总数量和各数据块的地址信息;根据数据块总数量和各数据块的地址信息,建立有序数据块映射表数组。

在本申请一些实施例中,如图2所示,根据数据块总数量和各数据块的地址信息,建立有序数据块映射表数组的具体步骤可包括:

步骤201,根据数据块总数量建立空的数据块映射表数组。

在本申请实施例中,数据块映射表数组内的每个数据块映射表包括:

第一元素,用于指示数据块的地址信息;

第二元素,用于指示数据块的大小;

第三元素,用于指示数据块的地址信息指向的位置的一个数字。

需要说明的是,数据块映射表数组中的数据块映射表的数量与数据块总数一致,也就是说,数据块映射表数组由数据块映射表组成,且每一个数据块均有一个数据块映射表。

步骤202,根据各数据块的地址信息,对数据块映射表数组内的每个数据块映射表的元素进行赋值,得到有序数据块映射表数组。

需要说明的是,从云端服务器获取文档的交叉引用表中从上到下排列的各数据块的偏移地址是无序排列的,该偏移地址表示各数据块在文档中的相对位置,所以若想获得有序数据块映射表数组,需要先对交叉引用表中各数据块根据偏移地址从小到大进行排序,也就是按文档中数据块的排列顺序进行排序。

在本申请实施例中,各数据块的映射表中的第一元素,也就是用于指示数据块的地址信息,即该数据块在文档中的物理偏移地址,可在交叉引用表中直接获得,在交叉引用表中直接获得的各数据块的偏移地址赋值到各对应数据块的映射表的第一元素中。

另外,各数据块的映射表中的第二元素表示对应的数据块的大小,也就是当前数据块在文档中的开始位置和结束位置的空间大小,其可以通过以下方式计算:所有数据块均按偏移地址从小到大排列,当前数据块的大小可以表示为下一个数据块在文档中的物理偏移地址与当前数据块在文档中的物理偏移地址的差值,将其计算后赋值到对应数据块映射表中的第二元素中。为更清楚的说明其实现方式,下面将通过以下示例进一步说明:

举例而言,若文档中包含n个数据块,其中各数据块的物理偏移地址使用Pos来表示,各数据块的大小使用Size来表示,该文档中各数据块按照偏移地址排序后的前三个数据块为:

第一个数据块,Pos=000000017;

第二个数据块,Pos=000000169;

第三个数据块,Pos=000000225,则,

第一个数据块的大小Size=169-17;

第二个数据块的大小Size=225-169,也就是,

第一个数据块的映射表中,第二元素为169-17;

第二个数据块的映射表中,第二元素为225-169。

需要说明的是,交叉引用表中既包括该文档中所有的数据块的总数量,又包括数据块的起始编号,交叉引用表中的各数据块按原始排序根据起始编号从上到下依次加1即为交叉引用表中各对应数据块的编号,也就是说交叉引用表中的各数据块均有自己的编号,此编号就是本申请实施例中数据块映射表中的第三元素。其中,原始排序是指直接从云端获取到的交叉引用表的默认的排序,也就是未经过排序处理的各数据块的排列顺序。

在本申请实施例中,已建立的空的数据块映射表数组经过以上赋值后,得到了有序数据块映射表数组。

需要说明的是,对当前待访问页面所需的数据块数组之中数据块的网络读取操作进行合并的方式有很多种,作为一种示例,可根据有序数据块映射表数组之中各数据块映射表之间的相邻关系,以对当前待访问页面所需的数据块数组中的数据块的网络读取操作进行合并。在本申请实施例中,如图3所示,当前待访问页面所需的数据块数组之中数据块的网络读取操作进行合并的具体实现方式如下:

步骤301,根据有序数据块映射表数组中各数据块映射表之间的相邻关系,从数据块数组内找出在有序数据块映射表数组中相邻的数据块。

在本申请实施例中,根据有序数据块映射表数组中各数据块映射表之间的相邻关系,从当前待访问页面所需的数据块数组中找出其在有序数据块映射表数组中相邻的数据块。也就是说,从当前待访问页面所需的数据块数组中找出在有序数据块映射表数组中位置相邻的两个或两个以上数据块,具体实现方式通过以下示例进行说明:

举例而言,若当前待访问页面包括的数据块数组为{obj1,obj2,obj3,obj7,obj8,obj9},其中obj表示数据块,obj后的数字表示数据块编号;

假设截取有序数据块映射表数组中连续一段如下表:

其中,表格中第一行表示有序数据块映射表数组中的数据块,obj表示数据块,obj后的数字表示数据块编号,表格中第二行表示各数据块在有序数据块映射表数组中的序号;

可以发现,当前待访问页面数据库数组中的obj1和obj2在有序数据块映射表数组中是相邻的,此外,当前待待访问页面数据库数组中的obj8和obj9在有序数据块映射表数组中也是相邻的,也就是说,根据有序数据块映射表数组中各数据块映射表之间的相邻关系,从数据块数组被找出在数据块映射表数据组中相邻的数据块为obj1和obj2、obj8和obj9。

步骤302,将相邻数据块的网络读取操作进行合并,并根据相邻数据块对应的数据块映射表,生成针对相邻数据块的网络读取请求。

可以理解,相邻的数据块的网络读取操作进行合并,也就是将相邻的数据块的网络读取操作合并为一次网络读取操作,这样就可以将原来的多次网络读取操作减为一次网络读取操作。

在本申请实施例中,网络读取请求即为向云端服务器请求获取数据块数据内容的方式,可以由网络请求的起点位置和请求的数据长度大小组成。

如上示例中,obj1和obj2为相邻的数据块,则将相邻数据块的网络读取操作进行合并即为将obj1的网络读取操作和obj2的网络读取操作合并为一次网络读取操作。此外,根据相邻数据块对应的数据块映射表,生成针对相邻数据块的网络读取请求,也就是,根据其对应的数据块映射表,生成起点为obj1数据映射表中的第一元素,长度为obj1数据映射表中第二元素与obj2数据映射表中第二元素之和的网络读取请求。

步骤303,根据有序数据块映射表数组中各数据块映射表,生成数据块数组内其他数据块的网络读取请求,其中,其他数据块为数据块数组内除相邻数据块之外的数据块。

在本申请实施例中,通过以上方式将相邻数据块网络读取操作进行合并后,有效地减少了网络读取请求的次数,提高了文档在线预览的加载速度。

为了进一步有效地减少网络读取请求的次数,进一步提高文档在线预览的加载速度,在本申请一些实施例中,如图4所示,在将相邻数据块的网络读取操作进行合并之后,在根据相邻数据块对应的数据块映射表,生成针对相邻数据块的网络读取请求之前,该方法还可以包括:

步骤405,判断经过网络读取操作合并后的数据块之间是否存在满足目标条件的目标数据块;

若存在,执行步骤406,否则执行步骤403;

在本申请实施例中,判断经过网络读取操作合并后的数据块之间是否存在满足目标条件的目标数据块,其中,目标条件可以为限制数据块大小的条件。举例而言,目标条件可以为数据块大小不大于3K的数据块,若合并后的数据块之间存在数据块大小不大于3K的数据块,则合并后的数据块之间存在的不大于3K的数据块即为满足目标条件的目标数据块。此处目标条件可根据实际情况确定,本申请实施例不作限定。

步骤406,将目标数据块合并到相邻数据块中后,执行步骤403。

举例而言,若当前待访问页面包括的数据块数组为{obj1,obj2,obj3,obj7,obj8,obj9},其中obj表示数据块,obj后的数字表示数据块编号;

且根据数据块数组截取有序数据块映射表数组中连续一段如下表:

其中,表格中第一行表示有序数据块映射表数组中的数据块及对应数据块的大小,obj表示数据块,obj后的数字表示数据块编号,表格中第二行表示各数据块在有序数据块映射表数组中的序号;

同时,目标条件为数据块大小不大于3K的数据块;

由以上示例,obj1和obj2为相邻数据块,将其进行了网络读取操作合并后,可以发现,obj4在合并后的数据块obj1和obj2与obj3之间,且obj4的大小不到与3K,所以obj4即为目标数据块,需要将obj4合并到obj1和obj2中,即将obj4的网络请求操作合并至obj1和obj2的网络请求操作中。

需要说明的是,图4的步骤401与图3中的步骤301的实现方式一致,图4中的步骤402和403与图3中的步骤302的实现方式一致,图4中的步骤404与图3中的步骤303的实现方式一致,此处不再赘述。

这样,通过将目标数据块合并至相邻数据块中,即将数据块的网络读取操作进一步进行合并,可以有效地减少网络读取请求的次数,进一步提高了本申请实施例的文档在线预览的加载速度。

在本申请实施例中,由于当前待访问页面所需的数据块数组中的数据块有可能已经下载,所以为了避免数据的重复请求,本申请提出了又一种文件在线预览的方法。图5是根据本申请提出的又一种文档在线预览方法的流程图。需要说明的是,本申请实施例的文档在线预览方法可应用于本申请实施例的文档在线预览装置,该文档在线预览装置可被配置于电子设备。

如图5所示,该文档在线预览方法的流程在图1的基础上,还增加了以下实现步骤:

步骤506,判断数据块数组中是否存在已下载的数据块;

若存在,则执行步骤507,否则实行步骤503;

步骤507,根据有序数据块映射表数组对数据块数组之中未被下载的数据块的网络读取操作进行合并,并获得合并后的网络读取请求后,执行步骤504。

在本申请实施例中,若数据块数组中存在已下载的数据块,说明在执行其他网络读取请求时,已将数据块数组中的部分数据块进行下载,所以在进行网络读取操作合并时,只将未被下载的数据块的网络读取操作进行合并即可。

在本申请实施例中,步骤507中的网络读取请求的合并方式可以分别采用本申请的各实施例中的任一种合并方式实现,本申请实施例并不对此作出限定,也不再赘述。

需要说明的是,在本申请实施例中,图5中的步骤501至505与图1中的步骤101至105的实现方式一致,此处不再赘述。

根据本申请实施例的文档在线预览的方法,通过增加对数据块数组中是否存在已下载的数据块的判断,根据有序数据块映射表数组只对数据块数组中未被下载的数据块的网络读取操作进行合并,避免了数据块的重复网络读取请求,既减少了资源的浪费又提高了网络读取请求的效率,从而提高了文档在线预览的加载速度。

为了提高该文档在线预览方法的适用性,本申请提出了又一种文档在线预览方法,图6是根据本申请提出的又一种文档在线预览方法的流程图。需要说明的是,本申请实施例的文档在线预览方法可应用于本申请实施例的文档在线预览装置,该文档在线预览装置可被配置于电子设备。

如图6所示,在上述实施例的基础上,该文档在线预览方法的流程中增加了以下实现步骤:

步骤608,从云端服务器获取文档的文件头信息;

步骤609,根据文件头信息判断文档的格式是否满足标准格式要求;

若是,则执行步骤610,否则不执行;

步骤610,判断文档是否为非线性文档;

若是,则执行步骤601,否则直接依次拉取数据块。

需要说明的是,不同格式的文档均有规定的标准格式要求,本申请各实施例提出的文档在线预览方法适用于满足标准格式要求的文档,若当前文档的格式不满足标准格式要求,则无需继续执行该方法的后续步骤。其中,文档的格式是否满足标准格式要求可根据文件头信息进行分析判断。

此外,线性化文档可直接依次拉取数据块获取数据内容,也就是说,线性化文档并不需要再执行本申请实施例提出的文档在线预览方法。所以需要判断当前文档是否为非线性文档来决定是否继续执行后续步骤。其中,当前文档是否为非线性化文档可根据文件头信息中Linearized字段进行判断。经过上述判断后,若当前文档为非线性化文档,则继续执行本申请各实施例中的文档在线预览方法,否则直接依次拉取数据块即可。

需要说明的是,图6中的步骤601至607与图5中的步骤501至507的实现方式一致,此处不再赘述。

根据本申请实施例的文档在线预览的方法,通过增加对文档的文件头信息的获取,并根据文件头信息的分析,判断文档格式是否满足标准格式要求及是否为非线性化文档,若文档格式满足标准格式要求且为非线性化文档时,才继续执行后续步骤,增加了该方法进行的有效性,同时也提高了该方法的适用性。

为实现上述实施例,本申请提出了一种文档在线预览装置。

图7为本申请实施例提供的一种文档在线预览装置的结构框图,如图7所示,该文档在线预览装置包括:第一获取模块710、第一构建模块720、第二获取模块730,第二构建模块740、合并模块750、第三获取模块760和显示模块770。

具体地,第一获取模块710,用于从云端服务器获取文档的交叉引用表;

第一构建模块720,用于根据交叉引用表构建有序数据块映射表数组;

第二获取模块730,用于根据交叉引用表的位置获取当前待访问页面;

第二构建模块740,用于提取当前待访问页面中的所有依赖对象以构建当前待访问页面所需的数据块数组;

合并模块750,用于根据有序数据块映射表数组对当前待访问页面所需的数据块数组之中数据块的网络读取操作进行合并,并获得合并后的网络读取请求;

第三获取模块760,用于根据合并后的网络读取请求从云端服务器获取对应的数据内容;

显示模块770,用于根据数据内容进行页面渲染,并将渲染后得到页面进行显示。

在本申请实施例中,第一获取模块710具体用于:

从云端服务器获取所述文档的文件尾信息;

根据文件尾信息从云端服务器获取文档的交叉引用表。

在本申请实施例中,如图7所示,第一构建模块720包括:

获取单元721,用于从交叉引用表中所述文档所包含的数据块总数量和各数据块的地址信息;

建立单元722,用于根据数据块总数量和各数据块的地址信息,建立有序数据块映射表数组。

其中,建立单元722具体用于:

根据数据块总数量建立空的数据块映射表数组;数据块映射表数组内的每个数据块映射表包括第一元素、第二元素和第三元素,第一元素用于指示数据块的地址信息,第二元素用于指示数据块的大小,第三元素用于指示数据块的地址信息指向的位置的一个数字;

根据各数据块的地址信息,对数据块映射表数组内的每个数据块映射表的元素进行赋值,得到有序数据块映射表数组。

在本申请实施例中,如图7所示,合并模块750包括:

获取单元751,用于根据有序数据块映射表数组中各数据块映射表之间的相邻关系,从数据块数组内找出在有序数据块映射表数组中相邻的数据块;

合并单元752,用于将相邻数据块的网络读取操作进行合并,并根据相邻数据块对应的数据块映射表,生成针对相邻数据块的网络读取请求;

生成单元753,用于根据有序数据块映射表数组中各数据块映射表,生成数据块数组内其他数据块的网络读取请求;其中,其他数据块为数据块数组内除相邻数据块之外的数据块。

其中,在本申请实施例中,合并单元752还用于:

在将相邻数据块的网络读取操作进行合并之后,在根据相邻数据块对应的数据块映射表,生成针对相邻数据块的网络读取请求之前,基于有序数据块映射表数组,判断经过网络读取操作合并后的数据块之间是否存在满足目标条件的目标数据块;

若存在,则将目标数据块合并到相邻数据块中。

此外,在本申请实施例中,合并单元752还可用于:

响应于数据块数组中存在已下载的数据块,根据有序数据块映射表数组对数据块数组之中未被下载的数据块的网络读取操作进行合并。

根据本申请实施例的文档在线预览装置,通过构建有序数据块映射表数组,并对当前待访问页面所需数据块的网络读取操作进行合并,可以减少网络请求的次数,提高网络读取效率,从而提高了文档在线预览加载速度。

为实现上述实施例,本申请提供了另一种文件在线预览装置。

图8为本申请实施例提供的另一种文件在线预览装置的结构框图,如图8所示,该文件在线预览装置还包括:

第四获取模块880,用于根据文件尾信息从云端服务器获取文档的交叉引用表之前,从云端服务器获取文档的文件头信息;

判断模块890,用于根据文件头信息判断文档的格式是否满足标准格式要求,且文档是否为非线性化文档;

其中,第一获取模块810还用于:在文档的格式满足标准格式要求,且文档为非线性化文档时,执行根据所述文件尾信息从云端服务器获取文档的交叉引用表的步骤。

其中,图8中的810至870与图7中的710至770具有相同的功能和结构,此处不再赘述。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

根据本申请实施例的文档在线预览装置,通过增加对文档的文件头信息的获取,并根据文件头信息的分析,判断文档格式是否满足标准格式要求且为非线性化文档,若文档格式满足标准格式要求且为非线性化文档时,才继续执行后续步骤,增加了该方法进行的有效性,同时也提高了该方法的适用性。

根据本申请的实施例,本申请还提供了一种电子设备、存储介质和计算机程序产品。

如图9所示,是根据本申请实施例的文档在线预览的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。

存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的文档在线预览的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的文档在线预览的方法。本申请的计算机程序产品,包括计算机程序,该计算机程序在被处理器901执行时实现本申请所提供的文档在线预览方法。

存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的文件在线预览的方法对应的程序指令/模块(例如,附图7所示的第一获取模块701、第一构建模块702、第二获取模块703,第二构建模块704、合并模块705、第三获取模块706和显示模块707)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的文档在线预览的方法。

存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据文档在线预览的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至文档在线预览的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

文档在线预览的方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。

输入装置903可接收输入的数字或字符信息,以及产生与文档在线预览的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

相关技术
  • 文档在线预览方法、装置、电子设备及存储介质
  • 文档在线预览方法、装置、计算机设备和存储介质
技术分类

06120112965322