CN113051504A - 文档预览方法、装置、设备、存储介质及程序产品 - Google Patents
文档预览方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113051504A CN113051504A CN202110309374.1A CN202110309374A CN113051504A CN 113051504 A CN113051504 A CN 113051504A CN 202110309374 A CN202110309374 A CN 202110309374A CN 113051504 A CN113051504 A CN 113051504A
- Authority
- CN
- China
- Prior art keywords
- document
- data block
- index table
- previewed
- address index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了文档预览方法、装置、设备、存储介质及程序产品,涉及智能搜索领域。该方法包括:接收文档预览请求,并根据文档预览请求,获取待预览文档的多个数据块中的目标数据块,目标数据块为包括待预览文档的根对象和对象地址索引表的指示信息的数据块;根据目标数据块,分别确定待预览文档的根对象和对象地址索引表;根据根对象和对象地址索引表,查找第一待预览页面对象;获取第一待预览页面对象中页内对象对应的数据块,并对数据块进行解析和渲染。该方法提高了文档在线预览时的文档打开速度。
Description
技术领域
本申请实施例涉及计算机技术,尤其涉及一种文档预览方法、装置、设备、存储介质及程序产品,可用于智能搜索领域。
背景技术
在客户端时代,文档浏览通常是通过专用的阅读器通过本地浏览的方式进行,而到了互联网时代,用户对文档的在线预览需求是非常强烈的。
常规的文档在线预览方案往往还是先下载整个文档,再对其进行解析和渲染,这种方案中文档的下载速度会直接影响预览的打开速度。由于文档大小是不可控的,在文档较大时,整个文档的下载时间会较长,这就会导致文档在线预览时的打开速度太慢。
发明内容
本申请提供了一种用于提高文档在线预览时的打开速度的文档预览方法、装置、设备、存储介质及程序产品。
根据本申请的一方面,提供了一种文档预览方法,包括:
接收文档预览请求,并根据所述文档预览请求,获取待预览文档的多个数据块中的目标数据块,所述目标数据块为包括所述待预览文档的根对象和对象地址索引表的指示信息的数据块;
根据所述目标数据块,分别确定所述待预览文档的根对象和对象地址索引表;
根据所述根对象和所述对象地址索引表,查找第一待预览页面对象;
获取所述第一待预览页面对象中页内对象对应的数据块,并对所述数据块进行解析和渲染。
根据本申请的另一方面,提供了一种文档预览装置,包括:
获取模块,用于接收文档预览请求,并根据所述文档预览请求,获取待预览文档的多个数据块中的目标数据块,所述目标数据块为包括所述待预览文档的根对象和对象地址索引表的指示信息的数据块;
第一处理模块,用于根据所述目标数据块,分别确定所述待预览文档的根对象和对象地址索引表;
第二处理模块,用于根据所述根对象和所述对象地址索引表,查找第一待预览页面对象;
显示模块,用于获取所述第一待预览页面对象中页内对象对应的数据块,并对所述数据块进行解析和渲染。
根据本申请的再一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的方法。
根据本申请的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述第一方面所述的方法。
根据本申请的又一方面,提供了一种计算机程序产品,所述程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。
根据本申请的技术方案,提高了文档在线预览时的打开速度。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例提供的文档页面树的示意图;
图2是根据本申请实施例提供的文档预览方法的流程示意图;
图3是根据本申请实施例提供的文档数据块的示意图;
图4是根据本申请实施例提供的一个数据块的部分信息示意图;
图5是根据本申请实施例提供的另一个数据块的部分信息示意图;
图6是根据本申请实施例提供的文档预览装置的结构示意图;
图7是用来实现本申请实施例的文档预览方法的电子设备的示意性框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例提供的文档预览方法适用于在线预览文档的场景中。在线预览文档的相关技术中,常用的方法是全文档下载,即将整个文档数据下载之后进行预览,然而这种方式的预览打开速度受文档大小影响,在文档较大时,文档下载时间较长,导致打开速度太慢。
为了提升文档在线预览的打开速度,可以考虑采用流式加载的方法,即按照待预览的页面位置加载数据,采用拉流的方式,每次仅请求待预览文档中与待预览的页面对应的一段数据,这样在不需要全量文档的条件下,也能够正常解析与渲染已获取的部分数据以实现对应页面的预览。对文档采用这种流式加载的前提是文档要素是以页为单位组织的,从而可以在预览时仅获取一个页面对应的数据,实现快速预览。
以PDF文档为例,PDF文档的格式是由文件头、文件体、交叉引用表和文件尾组成的,其中文件体中的内容即为每个页面的页内对象,这些对象是以页面建立的索引。示例的,如图1所示,是PDF文档中页面对象的树形关系,从根节点到页面树,再到单个页面具有完整的包含关系。因此在文档预览时,为了实现更快的打开速度,可以只取渲染一个页面所需要的数据。当这个页面的数据下载后,即可以实现该页面的解析和渲染,之后的页面数据可以继续下载,实现边看边下载,提高了在线预览的打开速度。
为了实现上述逐页下载和预览,在采用拉流的方式获取文档的数据块时,需要先获取可以解析出根节点到页面对象之间的树形关系以及文档中的对象地址索引的数据块,进而根据页面对象和对应的地址,获取单个页面对应的数据块,从而实现快速预览。下面,将通过具体的实施例对本申请提供的文档预览方法进行详细地说明。可以理解的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2是根据本申请实施例提供的文档预览方法的流程示意图。该方法的执行主体为文档预览装置,该装置可以通过软件和/或硬件的方式实现,示例的,该装置可以为个人计算机、手机等终端。该方法包括:
S201、接收文档预览请求,并根据文档预览请求,获取待预览文档的多个数据块中的目标数据块。
其中,目标数据块为包括待预览文档的根对象和对象地址索引表的指示信息的数据块。
文档预览请求可以由用户通过终端触发,示例的,用户在终端的用户界面上点击待预览文档的预览图标,从而触发文档预览请求,终端根据文档预览请求向服务端请求该待预览文档。在本申请实施中,终端向服务端请求该待预览文档时并不直接请求下载整个文档的数据,而是在将待预览文档看作多个数据块的前提下,先获取其中的目标数据块,以便于后续逐步进行解析。
待预览文档的根对象是文档对象的总入口,即根节点,以待预览文档为PDF文档为例进行说明,PDF文档中可以包括页面对象、书签对象、表单对象等,如前所述,PDF中的对象具有树形关系,因此这些对象均可以从根对象逐步查找到。待预览文档的对象地址索引表中包括了对象与地址之间的对应关系,以PDF文档为例,对象地址索引表即交叉索引表,其中包括了PDF中的各个对象的地址信息。
目标数据块中包括了根对象和对象地址索引表的指示信息,指示信息可以是标识、地址等信息,从而可以基于目标数据块进一步获取根对象和对象地址索引表。对于一定数据格式的待预览文档,待预览文档的文档结构是固定的,文档中的描述信息、指示信息等通常在固定的数据块中,示例的,目标数据块通常在文档的头部和/或尾部,在实际应用中可以根据待预览文档的格式获取目标数据块。
S202、根据目标数据块,分别确定待预览文档的根对象和对象地址索引表。
在从目标数据块中获取了根对象和对象地址索引表的指示信息,因此可以基于这些指示信息分别获取待预览文档的根对象和对象地址索引表。需要说明的是,若指示信息所指示的根对象或对象地址索引表在已经获取的目标数据块中,则可以直接获取根对象或对象地址索引表;若指示信息所指示的根对象或对象地址索引表不在已经获取的目标数据块中,则根据指示信息获取与指示信息对应的数据块以获取根对象或对象地址索引表。
S203、根据根对象和对象地址索引表,查找第一待预览页面对象。
在确定根对象之后,可以基于根对象和对象地址索引表,逐步确定出根对象之下的页面对象的树形关系,这样即可查找到第一待预览页面对象。示例的,在用户触发文档预览请求后,终端首先加载待预览文档的首页,则第一待预览页面即为待预览文档的首页,在根据本申请实施例加载完首页之后,终端继续加载第二页,此时,第一待预览页面即为第二页,本申请实施例中仅对一个页面的加载过程进行详细说明,其他页面的加载过程是类似的,终端可以逐个加载。
S204、获取第一待预览页面对象中页内对象对应的数据块,并对数据块进行解析和渲染。
第一待预览页面中的页内对象可以包括数字、文字和图片等内容流,还可以包括字体、颜色空间和嵌入对象等资源流,这些页内对象的地址均可以通过对象地址索引表确定,从而终端可以仅获取第一待预览页面对象中页内对象对应的数据块,根据对上述数据块的解析,结合页面大小即可实现对第一待预览页面的渲染。
本申请实施例中,对待预览文档采用拉流的方式,先获取包括根对象和对象地址索引表的指示信息的目标数据块,从而解析出根对象和对象地址索引表,之后即可根据根对象逐步确定待预览页面对象,从而能够根据一个待预览页面对象和对象地址索引表获取该待预览页面的页内对象对应的数据块,实现了通过较少的数据量即可实现该待预览页面的渲染,提高了文档在线预览的打开速度,通过逐个加载各页面对应的数据块,实现全文档流式打开。
在上述实施例的基础上,进一步对如何获取目标数据块,以及如何根据目标数据块确定待预览文档的根对象和对象地址索引表做详细说明。
根据文档预览请求,确定待预览文档的多个数据块各自对应的地址;根据多个数据块各自对应的地址,获取目标数据块。
在本申请实施例中,终端将待预览文档作为多个数据块,采用拉流的方式每次获取其中的部分数据块。具体的,终端在接收到文档预览请求后,可以先获取待预览文档的大小,根据待预览文档的大小,按照将待预览文档划分为多个数据块的方式确定各数据块对应的地址。从而,通过获取少量数据即可分析获得文档的根对象和对象地址索引表,实现页面树的构建。
可选的,按照固定大小确定待预览文档的多个数据块,多个数据块中存在至多一个数据块的大小与其他数据块的大小不同。示例的,如图3所示,按照128KB的固定大小将待预览文档从头部和尾部依次划分,最终在待预览文档的中部位置会存在一个数据块小于128KB。
由于PDF文档可以分为线性化文档和常规文档,常规文档中,文件头部存储了文件版本等信息,文件尾部存储了根对象的标识信息即根对象的间接对象号,以及交叉引用表的地址信息;而线性化文档中,根对象的标识信息以及交叉引用表的地址信息等均在文件头部,按照顺序拉取数据块即可获取到。因此,本申请实施例中目标数据块可以分两种情况进行说明。
在一种实施方式中,在预先可以确定待预览文档是线性化文档的情况下,则目标数据块可以为待预览文档的多个数据块中的第一个数据块,即终端首先获取待预览文档的第一个数据块,之后,根据第一个数据块,分别查找根对象的标识信息和对象地址索引表的地址信息。
需要说明的是,在这种实施方式中,若在第一个数据块中未查找到根对象的标识信息和对象地址索引表的地址信息,则继续获取待预览文档的第二个数据块查找,依次拉取数据块即可。这样,即可通过每次获取少量数据,实现文档的流式预览。
在一种实施方式下,在无法预先确定待预览文档是线性化文档或常规文档的情况下,目标数据块可以为待预览文档的多个数据块中的第一个数据块和最后一个数据块。即终端可以同时获取待预览文档的第一个数据块和最后一个数据块,之后先对第一个数据块进行分析,确定待预览文档是否为线性化文档;若是,则从第一个数据块中,分别查找根对象的标识信息和对象地址索引表的地址信息,若否,则从最后一个数据块中,分别查找根对象的标识信息和对象地址索引表的地址信息。
示例的,如图4所示为最后一个数据块中的部分信息,图4中Root标签之后的10即为根对象的间接对象号(表示信息),startxref标签之后的16644即为交叉引用表(对象地址索引表)的地址信息。
对于PDF文档,在对第一个数据块进行分析时,还可以根据第一数据块中的文档类型的标识,确定待预览文档是不是有效的PDF文档,若不是,则停止执行后续的步骤,进行报错。
上述两种实施方式中,在查找到根对象的标识信息和对象地址索引表的地址信息后,根据根对象的标识信息和第一个数据块,查找根对象;根据对象地址索引表的地址信息,获取存储对象地址索引表的数据块,并从存储对象地址索引表的数据块中获取对象地址索引表。
示例的,如图5所示为第一个数据块中的部分信息,结合图4以及图5所示,在确定根对象的间接对象号为10后,在第一个数据块中查找到10obj即为根对象。在确定交叉引用表的地址信息16644后,根据该地址信息获取相应的数据块,从而获得交叉引用表。
需要说明的是,在根据根对象的标识信息,从第一个数据块中查找根对象时,可能在第一个数据块中未能查找到根对象,则需要再获取待预览文档的第二个数据块,从第二个数据块中查找根对象。即,若图5所示的第一个数据块的信息中没有10obj,则从第二个数据块中继续查找。由于常规PDF文档的根对象在文档头部,通常在两个数据块中可以查找到根对象。这样,通过获取文档头部和尾部的几个数据块即可分析获取文档的页面树。
以下进一步对如何根据根对象和对象地址索引表,查找第一待预览页面对象进行说明。
根据根对象和对象地址索引表,查找页面对象;从页面对象中查找子页面对象的标识信息;根据子页面对象的标识信息和对象地址索引表,查找第一待预览页面对象。
由于根对象和页面之间存在树形关系,因此可以从根对象中查找页面对象的标识信息;根据页面对象的标识信息和对象地址索引表,查找页面对象。仍然参照图5进行说明。如图5所示,根对象即10obj中包括了页面(Pages)对象的间接对象号,Pages对象的间接对象号为20。这样,根据Pages对象的间接对象号可以从交叉引用表中确定Pages对象的地址,从而获取Pages对象。需要说明的是,图5中仅为一种示例,即Pages对象20obj在第一个数据块中,从而可以直接从中查找到Pages对象。在具体应用中,若Pages对象的地址不在当前已经获取到的数据块中,则根据Pages对象的地址获取对应的数据块,从而可以查找到Pages对象。
页面对象即Pages对象是页面的总入口,Pages对象中的信息指示了待预览文档中包括的具体页面,即子页面对象的数量以及各子页面对象的间接对象号。这里的子页面是指待预览文档中的一个具体页面。如图5中所示,Pages对象20obj中包括了子页面对象的数量(Count)为1,子页面对象(Kids)的间接对象号为30。图5中以一个页面为例,实际应用中,若待预览文档中有10个子页面,则Count为10,Kids中包括10个间接对象号。从而根据根对象和对象地址索引表可以快速构建文档的页面树,进而能够逐个获取单个页面对应的数据块,实现流式预览。
在获取待预览文档的首页时,即第一待预览页面对象为首页对象,根据首页对象的间接对象号,即可从交叉引用表中确定首页对象的地址,从而查找首页对象;获取待预览文档的第二页时,即第一待预览页面对象为第二页对象,根据第二页对象的间接对象号,即可从交叉引用表中确定第二页对象的地址,从而查找第二页对象。
需要说明的是,在查找第一待预览页面对象时,若第一待预览页面对象的地址在已经获取的数据块中,则可以直接从中查找第一待预览页面对象,若第一待预览页面对象的地址不在已经获取的数据块中,则根据第一待预览页面对象的地址获取对应的数据块以获得第一待预览页面对象。
在查找到第一待预览页面对象后,即可确定第一待预览页面对象中的页内对象,如前所述,页内对象可以包括数字、文字和图片等内容流,还可以包括字体、颜色空间和嵌入对象等资源流。第一待预览页面对象中包括了各页内对象的间接对象号,从而根据这些间接对象号以及交叉引用表中确定各页内对象的地址,进而可以依次拉取各页内对象对应的数据块。
同样需要说明的是,若页内对象的地址在已经获取的数据块中,则可以直接从中获取页内对象,若页内对象的地址不在已经获取的数据块中,则根据页内对象的地址获取对应的数据块以获得页内对象。在获取到第一待预览页面的全部页内对象对应的数据块后,即可进行解析和渲染,从而实现页面预览。
本申请实施例中,通过先拉取目标数据块,构建根对象到页面对象之间的页面树,进而逐个拉取各个页面对应的数据块,从而通过较少的数据量即可实现页面的快速预览。
此外,还需要说明的是,本申请实施例中数据块的大小可以是固定大小,从而终端在每次拉取数据时,无需分析计算本次需要拉取多少数据,只需要按照交叉引用表中的地址拉取对应的一个数据块即可,若拉取一个数据块之后确定该数据块中的对象的数据还不完整,则继续拉取下一个数据块即可,采用这种固定大小的拉流方式,可以减少终端的计算量,提高预览速度。
图6是根据本申请实施例提供的文档预览装置的结构示意图。如图6所示,文档预览装置600包括:
获取模块601,用于接收文档预览请求,并根据文档预览请求,获取待预览文档的多个数据块中的目标数据块,目标数据块为包括待预览文档的根对象和对象地址索引表的指示信息的数据块;
第一处理模块602,用于根据目标数据块,分别确定待预览文档的根对象和对象地址索引表;
第二处理模块603,用于根据根对象和对象地址索引表,查找第一待预览页面对象;
显示模块604,用于获取第一待预览页面对象中页内对象对应的数据块,并对数据块进行解析和渲染。
在一种实施方式中,第二处理模块603包括:
第一查找单元,用于根据根对象和对象地址索引表,查找页面对象;
第二查找单元,用于从页面对象中查找子页面对象的标识信息;
第三查找单元,用于根据子页面对象的标识信息和对象地址索引表,查找第一待预览页面对象。
在一种实施方式中,第一查找单元:
第一查找子单元,用于从根对象中查找页面对象的标识信息;
第二查找子单元,用于根据页面对象的标识信息和对象地址索引表,查找页面对象。
在一种实施方式中,获取模块601包括:
第一确定单元,用于根据文档预览请求,确定待预览文档的多个数据块各自对应的地址;
第一获取单元,用于根据多个数据块各自对应的地址,获取目标数据块。
在一种实施方式中,目标数据块为待预览文档的多个数据块中的第一个数据块;
第一处理模块602包括:
第四查找单元,用于根据第一个数据块,分别查找根对象的标识信息和对象地址索引表的地址信息;
第五查找单元,用于根据根对象的标识信息查找根对象;
第二获取单元,用于根据对象地址索引表的地址信息,获取存储对象地址索引表的数据块,并从存储对象地址索引表的数据块中获取对象地址索引表。
在一种实施方式中,目标数据块为待预览文档的多个数据块中的第一个数据块和最后一个数据块;
第一处理模块602包括:
分析单元,用于对第一个数据块进行分析,确定待预览文档是否为线性化文档;
第六查找单元,用于从最后一个数据块中,分别查找根对象的标识信息和对象地址索引表的地址信息;
第七查找单元,用于根据根对象的标识信息和第一个数据块,查找根对象;
第三获取单元,用于根据对象地址索引表的地址信息,获取存储对象地址索引表的数据块,并从存储对象地址索引表的数据块中获取对象地址索引表。
在一种实施方式中,第七查找单元包括:
第三查找子单元,用于根据根对象的标识信息,从第一个数据块中查找根对象;
第一获取子单元,用于若在第一个数据块中未查找到根对象,则获取待预览文档的第二个数据块;
第四查找子单元,用于从第二个数据块中查找根对象。
在一种实施方式中,多个数据块中存在至多一个数据块的大小与其他数据块的大小不同。
本申请实施例可用于执行上述方法实施例中的文档预览方法,其实现原理和技术效果类似,此处不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和存储有计算机指令的非瞬时计算机可读存储介质。
根据本申请的实施例,本申请还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
图7是用来实现本申请实施例的文档预览方法的电子设备的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如文档预览方法。例如,在一些实施例中,文档预览方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的文档预览方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文档预览方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (19)
1.一种文档预览方法,包括:
接收文档预览请求,并根据所述文档预览请求,获取待预览文档的多个数据块中的目标数据块,所述目标数据块为包括所述待预览文档的根对象和对象地址索引表的指示信息的数据块;
根据所述目标数据块,分别确定所述待预览文档的根对象和对象地址索引表;
根据所述根对象和所述对象地址索引表,查找第一待预览页面对象;
获取所述第一待预览页面对象中页内对象对应的数据块,并对所述数据块进行解析和渲染。
2.根据权利要求1所述的方法,所述根据所述根对象和所述对象地址索引表,查找第一待预览页面对象,包括:
根据所述根对象和所述对象地址索引表,查找页面对象;
从所述页面对象中查找子页面对象的标识信息;
根据所述子页面对象的标识信息和所述对象地址索引表,查找所述第一待预览页面对象。
3.根据权利要求2所述的方法,所述根据所述根对象和所述对象地址索引表,查找页面对象,包括:
从所述根对象中查找页面对象的标识信息;
根据所述页面对象的标识信息和所述对象地址索引表,查找页面对象。
4.根据权利要求1-3任一项所述的方法,所述根据所述文档预览请求,获取待预览文档的多个数据块中的目标数据块,包括:
根据所述文档预览请求,确定所述待预览文档的多个数据块各自对应的地址;
根据所述多个数据块各自对应的地址,获取所述目标数据块。
5.根据权利要求1-3任一项所述的方法,所述目标数据块为所述待预览文档的多个数据块中的第一个数据块;
所述根据所述目标数据块,确定所述待预览文档的根对象和对象地址索引表,包括:
根据所述第一个数据块,分别查找所述根对象的标识信息和所述对象地址索引表的地址信息;
根据所述根对象的标识信息查找所述根对象;
根据所述对象地址索引表的地址信息,获取存储所述对象地址索引表的数据块,并从所述存储所述对象地址索引表的数据块中获取所述对象地址索引表。
6.根据权利要求1-3任一项所述的方法,所述目标数据块为所述待预览文档的多个数据块中的第一个数据块和最后一个数据块;
所述根据所述目标数据块,确定所述待预览文档的根对象和对象地址索引表,包括:
对所述第一个数据块进行分析,确定所述待预览文档是否为线性化文档;
若否,则从所述最后一个数据块中,分别查找所述根对象的标识信息和所述对象地址索引表的地址信息;
根据所述根对象的标识信息和所述第一个数据块,查找所述根对象;
根据所述对象地址索引表的地址信息,获取存储所述对象地址索引表的数据块,并从所述存储所述对象地址索引表的数据块中获取所述对象地址索引表。
7.根据权利要求6所述的方法,所述根据所述根对象的标识信息和所述第一个数据块,查找所述根对象,包括:
根据所述根对象的标识信息,从所述第一个数据块中查找所述根对象;
若在所述第一个数据块中未查找到所述根对象,则获取所述待预览文档的第二个数据块;
从所述第二个数据块中查找所述根对象。
8.根据权利要求1-3任一项所述的方法,所述多个数据块中存在至多一个数据块的大小与其他数据块的大小不同。
9.一种文档预览装置,包括:
获取模块,用于接收文档预览请求,并根据所述文档预览请求,获取待预览文档的多个数据块中的目标数据块,所述目标数据块为包括所述待预览文档的根对象和对象地址索引表的指示信息的数据块;
第一处理模块,用于根据所述目标数据块,分别确定所述待预览文档的根对象和对象地址索引表;
第二处理模块,用于根据所述根对象和所述对象地址索引表,查找第一待预览页面对象;
显示模块,用于获取所述第一待预览页面对象中页内对象对应的数据块,并对所述数据块进行解析和渲染。
10.根据权利要求9所述的装置,所述第二处理模块包括:
第一查找单元,用于根据所述根对象和所述对象地址索引表,查找页面对象;
第二查找单元,用于从所述页面对象中查找子页面对象的标识信息;
第三查找单元,用于根据所述子页面对象的标识信息和所述对象地址索引表,查找所述第一待预览页面对象。
11.根据权利要求10所述的装置,所述第一查找单元:
第一查找子单元,用于从所述根对象中查找页面对象的标识信息;
第二查找子单元,用于根据所述页面对象的标识信息和所述对象地址索引表,查找页面对象。
12.根据权利要求9-11任一项所述的装置,所述获取模块包括:
第一确定单元,用于根据所述文档预览请求,确定所述待预览文档的多个数据块各自对应的地址;
第一获取单元,用于根据所述多个数据块各自对应的地址,获取所述目标数据块。
13.根据权利要求9-11任一项所述的装置,所述目标数据块为所述待预览文档的多个数据块中的第一个数据块;
所述第一处理模块包括:
第四查找单元,用于根据所述第一个数据块,分别查找所述根对象的标识信息和所述对象地址索引表的地址信息;
第五查找单元,用于根据所述根对象的标识信息查找所述根对象;
第二获取单元,用于根据所述对象地址索引表的地址信息,获取存储所述对象地址索引表的数据块,并从所述存储所述对象地址索引表的数据块中获取所述对象地址索引表。
14.根据权利要求9-11任一项所述的装置,所述目标数据块为所述待预览文档的多个数据块中的第一个数据块和最后一个数据块;
所述第一处理模块包括:
分析单元,用于对所述第一个数据块进行分析,确定所述待预览文档是否为线性化文档;
第六查找单元,用于从所述最后一个数据块中,分别查找所述根对象的标识信息和所述对象地址索引表的地址信息;
第七查找单元,用于根据所述根对象的标识信息和所述第一个数据块,查找所述根对象;
第三获取单元,用于根据所述对象地址索引表的地址信息,获取存储所述对象地址索引表的数据块,并从所述存储所述对象地址索引表的数据块中获取所述对象地址索引表。
15.根据权利要求14所述的装置,所述第七查找单元包括:
第三查找子单元,用于根据所述根对象的标识信息,从所述第一个数据块中查找所述根对象;
第一获取子单元,用于若在所述第一个数据块中未查找到所述根对象,则获取所述待预览文档的第二个数据块;
第四查找子单元,用于从所述第二个数据块中查找所述根对象。
16.根据权利要求9-11任一项所述的装置,所述多个数据块中存在至多一个数据块的大小与其他数据块的大小不同。
17.一种电子设备,包括:
至少一个处理器;以及与至少一个处理器通信连接的存储器;
其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行权利要求1-8中任一项的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110309374.1A CN113051504B (zh) | 2021-03-23 | 2021-03-23 | 文档预览方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110309374.1A CN113051504B (zh) | 2021-03-23 | 2021-03-23 | 文档预览方法、装置、设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113051504A true CN113051504A (zh) | 2021-06-29 |
CN113051504B CN113051504B (zh) | 2023-08-01 |
Family
ID=76514889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110309374.1A Active CN113051504B (zh) | 2021-03-23 | 2021-03-23 | 文档预览方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051504B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002132835A (ja) * | 2000-10-24 | 2002-05-10 | Toppan Forms Co Ltd | ドキュメント提供システムおよび提供方法 |
WO2013185254A1 (en) * | 2012-06-11 | 2013-12-19 | Google Inc. | Contextual content for online previews |
CN103678698A (zh) * | 2013-12-27 | 2014-03-26 | 福建福昕软件开发股份有限公司北京分公司 | 一种提高pdf文档在线浏览加载速度的方法及其装置 |
KR101415179B1 (ko) * | 2013-01-29 | 2014-07-04 | 주식회사 이파피루스 | 페이지 로딩 시스템 및 그 방법 |
CN106156148A (zh) * | 2015-04-14 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种页面的渲染方法、装置和终端设备 |
CN106202337A (zh) * | 2016-07-04 | 2016-12-07 | 华中师范大学 | 一种ppt共享方法及实现该方法的教师端和学生端 |
CN111881650A (zh) * | 2020-07-20 | 2020-11-03 | 北京百度网讯科技有限公司 | 一种pdf文档生成方法、装置以及电子设备 |
-
2021
- 2021-03-23 CN CN202110309374.1A patent/CN113051504B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002132835A (ja) * | 2000-10-24 | 2002-05-10 | Toppan Forms Co Ltd | ドキュメント提供システムおよび提供方法 |
WO2013185254A1 (en) * | 2012-06-11 | 2013-12-19 | Google Inc. | Contextual content for online previews |
KR101415179B1 (ko) * | 2013-01-29 | 2014-07-04 | 주식회사 이파피루스 | 페이지 로딩 시스템 및 그 방법 |
CN103678698A (zh) * | 2013-12-27 | 2014-03-26 | 福建福昕软件开发股份有限公司北京分公司 | 一种提高pdf文档在线浏览加载速度的方法及其装置 |
CN106156148A (zh) * | 2015-04-14 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种页面的渲染方法、装置和终端设备 |
CN106202337A (zh) * | 2016-07-04 | 2016-12-07 | 华中师范大学 | 一种ppt共享方法及实现该方法的教师端和学生端 |
CN111881650A (zh) * | 2020-07-20 | 2020-11-03 | 北京百度网讯科技有限公司 | 一种pdf文档生成方法、装置以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113051504B (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190188222A1 (en) | Thumbnail-Based Image Sharing Method and Terminal | |
US20150234927A1 (en) | Application search method, apparatus, and terminal | |
US20150135061A1 (en) | Systems and methods for parallel traversal of document object model tree | |
CN113159010B (zh) | 视频分类方法、装置、设备和存储介质 | |
CN111209374B (zh) | 数据查询展示方法、装置、计算机***及可读存储介质 | |
US11080322B2 (en) | Search methods, servers, and systems | |
CN113538450B (zh) | 用于生成图像的方法及装置 | |
CN114218890A (zh) | 页面渲染方法、装置、电子设备以及存储介质 | |
CN112966469A (zh) | 文档中的图表处理方法、装置、设备及存储介质 | |
CN113657395A (zh) | 文本识别方法、视觉特征提取模型的训练方法及装置 | |
CN106899755B (zh) | 信息分享方法、信息分享装置及终端 | |
CN113836462A (zh) | 页面描述文件的生成方法、装置、设备及存储介质 | |
CN113656737A (zh) | 网页内容展示方法、装置、电子设备以及存储介质 | |
US10963690B2 (en) | Method for identifying main picture in web page | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN111966846B (zh) | 图像查询方法、装置、电子设备和存储介质 | |
CN110647327A (zh) | 基于卡片的用户界面动态控制的方法和装置 | |
CN115904240A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN113051504B (zh) | 文档预览方法、装置、设备、存储介质及程序产品 | |
CN112887426B (zh) | 信息流的推送方法、装置、电子设备以及存储介质 | |
CN113221035A (zh) | 用于确定异常网页的方法、装置、设备、介质和程序产品 | |
CN113656731A (zh) | 广告页面的处理方法、装置、电子设备和存储介质 | |
CN112784596A (zh) | 一种识别敏感词的方法和装置 | |
CN112860626A (zh) | 一种文档排序方法、装置及电子设备 | |
CN113051505A (zh) | 文档显示方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |