一种提高pdf文档在线浏览加载速度的方法及其装置制造方法

文档序号:6526366阅读:260来源:国知局
一种提高pdf文档在线浏览加载速度的方法及其装置制造方法【专利摘要】本发明公开一种提高PDF文档在线浏览加载速度的方法和装置,从远端服务器获取PDF文档的属性信息,根据属性信息判断PDF文档是否为非线性文件;如果PDF文档为非线性文件,则从远端服务器获取PDF文档的交叉索引表数据,从交叉索引表数据中各对象的位置和大小确定PDF文档的页面树的位置和大小,从远端服务器获取PDF文档的页面树;将所获取的页面树呈现给用户,对页面树进行页面数据分析,从页面树中提取出用户指定页面对象的位置和大小,从远端服务器获取对应的页面对象数据;从远端服务器获取与所获取的页面对象数据对应的资源对象数据和页面内容流数据;根据所获取的页面对象数据、资源对象数据和页面内容流数据得到用户所选择的页面,并呈现给用户。【专利说明】一种提高PDF文档在线浏览加载速度的方法及其装置【
技术领域
】[0001]本发明涉及网络文档处理领域,具体而言,涉及一种提高PDF文档在线浏览加载速度的方法及其装置。【
背景技术
】[0002]F1DF,即PortableDocumentFormat,便携文件格式,是一种电子文件格式,与操作系统平台无关。正是因为其与操作平台无关的特性,使PDF格式成为在网络上进行电子文档发行和数字化信息传播的理想文档格式,越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用PDF格式的文件。在使用这些信息的时候,用户并不需要下载所有的文档,有的文档也不提供下载,这样我们就常常只需要在线浏览这些文档。[0003]然而,目前,基于在线浏览文档时打开远端的PDF文件,需要将整个PDF文件的内容先下载到本地,然后解析PDF文件再进行显示。浏览速度受限于网络的快慢,通常这些外部环境很难改变。整个下载PDF文件的时间就成了浏览效果的瓶颈。【
发明内容】[0004]本发明的目的在于,提供一种方案,只对PDF文件的部分内容进行下载完毕就呈现给用户,而不等到整个文件的内容全部下载完成,从而提高PDF文档在线浏览加载速度。[0005]为了达到上述目的,本发明提供一种提高PDF文档在线浏览加载速度的装置,包括:[0006]判断模块,用于从远端服务器获取PDF文档的属性信息,根据所述属性信息判断所述PDF文档是否为非线性文件;[0007]页面树模块,用于当PDF文档为非线性文件时,调用下载模块从远端服务器获取所述PDF文档的交叉索引表数据,从所述交叉索引表数据中各对象的位置和大小确定所述PDF文档的页面树的位置和大小,进而根据所确定的页面树的位置和大小调用所述下载模块从远端服务器获取所述PDF文档的页面树;[0008]页面对象模块,用于对所述页面树进行页面数据分析,从所述页面树中提取出用户指定页面对象的位置和大小,根据所述页面对象的位置和大小调用所述下载模块从远端服务器获取对应的页面对象数据;[0009]资源对象及页面内容流模块,调用所述下载模块从远端服务器获取与所获取的页面对象数据对应的资源对象数据和页面内容流数据;[0010]文档显示模块,用于根据所获取的页面对象数据、资源对象数据和页面内容流数据得到用户所选择的页面,并呈现给用户;[0011]所述下载模块,用于根据所述页面树模块、所述页面对象模块、所述资源对象及页面内容流模块的调用命令从远端服务器下载相关数据。[0012]其中,上述装置还包括:[0013]交互式表单模块,用于当用户指定页面的页面对象包括交互式表单时,从所述TOF文档获取交互式表单项中指定的所有相关对象的位置和大小,并根据所提取的交互式表单项中指定的所有相关对象的位置和大小调用下载模块从远端服务器获取相应的表格数据,呈现给用户并接受用户的交互式表单操作。[0014]其中,所述页面对象模块还用于当获取页面树失败或对所述页面树进行页面数据分析失败时,调用所述下载模块下载整个PDF文档,然后呈现给用户。[0015]其中,所述判断模块还用于当判断结果为所述PDF文档为线性文件时,调用所述下载模块直接下载所述PDF文档第I页的内容,呈现给用户,然后按照非线性文件方式对之后的页面进行处理,并将获取的页面呈现给用户,其中线性文件第I页的内容位于PDF文档的开头。[0016]本发明还提供一种提高PDF文档在线浏览加载速度的方法,包括以下步骤:[0017]从远端服务器获取PDF文档的属性信息,根据所述属性信息判断所述TOF文档是否为非线性文件;[0018]如果所述PDF文档为非线性文件,则从远端服务器获取所述PDF文档的交叉索引表数据,从所述交叉索引表数据中各对象的位置和大小确定所述PDF文档的页面树的位置和大小,并根据所确定的页面树的位置和大小从远端服务器获取所述PDF文档的页面树;[0019]将所获取的页面树呈现给用户,接受用户对所述页面树中页面的选择,对所述页面树进行页面数据分析,从所述页面树中提取出用户指定页面对象的位置和大小,根据所述页面对象的位置和大小从远端服务器获取对应的页面对象数据;[0020]从远端服务器获取与所获取的页面对象数据对应的资源对象数据和页面内容流数据;[0021]根据所获取的页面对象数据、资源对象数据和页面内容流数据得到用户所选择的页面,并呈现给用户。[0022]其中,上述方法还包括以下步骤:[0023]当用户指定页面的页面对象包括交互式表单时,从所述PDF文档获取交互式表单项中指定的所有相关对象的位置和大小,并根据所提取的交互式表单项中指定的所有相关对象的位置和大小从远端服务器获取相应的表格数据,呈现给用户并接受用户的交互式表单操作。[0024]其中,当获取页面树失败或对所述页面树进行页面数据分析失败时,下载整个TOF文档,然后呈现给用户。[0025]其中,如果所述PDF文档为线性文件,直接下载所述PDF文档第I页的内容,呈现给用户,然后按照非线性文件方式对之后的页面进行处理,并将获取的页面呈现给用户,其中线性文件第I页的内容位于PDF文档的开头。[0026]与现有技术相比,本发明的有益效果在于:[0027]提供了一种提高PDF文档在线浏览加载速度的方法及其装置,通过交叉索引表和页面树,支持用户指定页面,只需要对PDF文档的部分内容进行下载就可以进行显示,而不用等到整个文档的内容全部下载完成,这样可以减少用户的等待时间,从而提高PDF文档的在线浏览加载速度,达到快速浏览PDF页面的目的。【专利附图】【附图说明】[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0029]图1为本发明一个实施例的提高PDF文档在线浏览加载速度的装置的结构框图。[0030]图2为本发明一个实施例的提高PDF文档在线浏览加载速度的方法流程图。【具体实施方式】[0031]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0032]请参阅图1,图1为本发明一个实施例的提高TOF文档在线浏览加载速度的装置的结构框图。如图1所示,本发明还提供一种提高PDF文档在线浏览加载速度的装置,包括:[0033]判断模块,用于从远端服务器获取PDF文档的属性信息,根据所述属性信息判断所述PDF文档是否为非线性文件;其中,所述属性信息是指,PDF文件开始处(前1024个字节内)存储的线性化数据在PDF文件中的位置及长度;[0034]页面树模块,用于当PDF文档为非线性文件时,调用下载模块从远端服务器获取所述PDF文档的交叉索引表数据,从所述交叉索引表数据中各对象的位置和大小确定所述PDF文档的页面树的位置和大小,进而根据所确定的页面树的位置和大小调用所述下载模块从远端服务器获取所述PDF文档的页面树;其中,交叉索引表(Cross-referenceTable)是指能对间接对象进行随机存取而设立的一个间接对象地址索引表;所述间接对象构成了PDF文件的具体内容如字体、页面、图像等;所述交叉索引表的地址在文件尾(Trailer)声明;所述页面树(PagesTree)和书签树(OutlineTree)、线索树(ArticleThreads)、名字树(NamedDestination)是PDF文件的根对象(Catalog)下的四个子树,反映PDF文档的等级层次关系,根据文件尾提供的根对象(Catalog),控制整个PDF文件,本发明通过页面树获取页面对象;[0035]页面对象模块,用于对所述页面树进行页面数据分析,从所述页面树中提取出用户指定页面对象的位置和大小,根据所述页面对象的位置和大小调用所述下载模块从远端服务器获取对应的页面对象数据;[0036]资源对象及页面内容流模块,调用所述下载模块从远端服务器获取与所获取的页面对象数据对应的资源对象数据和页面内容流数据;其中,内容流(ContentStream)是指数字、字符串、图像等;资源对象是指所述内容流中用到的所有资源,比如指令集(ProcSet)、字体(Font)、色彩空间(Colorspace)、底纹(Pattern)等;[0037]文档显示模块,用于根据所获取的页面对象数据、资源对象数据和页面内容流数据得到用户所选择的页面,并呈现给用户;[0038]所述下载模块,用于根据所述页面树模块、所述页面对象模块、所述资源对象及页面内容流模块的调用命令从远端服务器下载相关数据。[0039]具体实施时,还包括:[0040]交互式表单模块,用于当用户指定页面的页面对象包括交互式表单时,从所述TOF文档获取交互式表单项中指定的所有相关对象的位置和大小,并根据所提取的交互式表单项中指定的所有相关对象的位置和大小调用下载模块从远端服务器获取相应的表格数据,呈现给用户并接受用户的交互式表单操作。[0041]具体实施时,所述页面对象模块还用于当获取页面树失败或对所述页面树进行页面数据分析失败时,调用所述下载模块下载整个PDF文档,然后呈现给用户。[0042]具体实施时,所述判断模块还用于当判断结果为所述PDF文档为线性文件时,调用所述下载模块直接下载所述PDF文档第I页的内容,呈现给用户,然后按照非线性文件方式对之后的页面进行处理,并将获取的页面呈现给用户,其中线性文件第I页的内容位于PDF文档的开头。[0043]请参阅图2,图2为本发明一个实施例的提高PDF文档在线浏览加载速度的方法流程图。如图2所示,本发明提供一种提高PDF文档在线浏览加载速度的方法,包括以下步骤:[0044]从远端服务器获取PDF文档的属性信息,根据所述属性信息判断所述PDF文档是否为非线性文件;[0045]如果所述PDF文档为非线性文件,则从远端服务器获取所述PDF文档的交叉索引表数据,从所述交叉索引表数据中各对象的位置和大小确定所述PDF文档的页面树的位置和大小,并根据所确定的页面树的位置和大小从远端服务器获取所述PDF文档的页面树;[0046]将所获取的页面树呈现给用户,接受用户对所述页面树中页面的选择,对所述页面树进行页面数据分析,从所述页面树中提取出用户指定页面对象的位置和大小,根据所述页面对象的位置和大小从远端服务器获取对应的页面对象数据;[0047]从远端服务器获取与所获取的页面对象数据对应的资源对象数据和页面内容流数据;[0048]根据所获取的页面对象数据、资源对象数据和页面内容流数据得到用户所选择的页面,并呈现给用户。[0049]具体实施时,还包括以下步骤:[0050]当用户指定页面的页面对象包括交互式表单时,从所述PDF文档获取交互式表单项中指定的所有相关对象的位置和大小,并根据所提取的交互式表单项中指定的所有相关对象的位置和大小从远端服务器获取相应的表格数据,呈现给用户并接受用户的交互式表单操作。[0051]具体实施时,当获取页面树失败或对所述页面树进行页面数据分析失败时,下载整个PDF文档,然后呈现给用户。[0052]具体实施时,如果所述PDF文档为线性文件,直接下载所述PDF文档第I页的内容,呈现给用户,然后按照非线性文件方式对之后的页面进行处理,并将获取的页面呈现给用户,其中线性文件第I页的内容位于PDF文档的开头。[0053]本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程或数据并不一定是实施本发明所必须的。[0054]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。【权利要求】1.一种提高PDF文档在线浏览加载速度的装置,其特征在于,包括:判断模块,用于从远端服务器获取PDF文档的属性信息,根据所述属性信息判断所述PDF文档是否为非线性文件;页面树模块,用于当PDF文档为非线性文件时,调用下载模块从远端服务器获取所述PDF文档的交叉索引表数据,从所述交叉索引表数据中各对象的位置和大小确定所述TOF文档的页面树的位置和大小,进而根据所确定的页面树的位置和大小调用所述下载模块从远端服务器获取所述PDF文档的页面树;页面对象模块,用于对所述页面树进行页面数据分析,从所述页面树中提取出用户指定页面对象的位置和大小,根据所述页面对象的位置和大小调用所述下载模块从远端服务器获取对应的页面对象数据;资源对象及页面内容流模块,调用所述下载模块从远端服务器获取与所获取的页面对象数据对应的资源对象数据和页面内容流数据;文档显示模块,用于根据所获取的页面对象数据、资源对象数据和页面内容流数据得到用户所选择的页面,并呈现给用户;所述下载模块,用于根据所述页面树模块、所述页面对象模块、所述资源对象及页面内容流模块的调用命令从远端服务器下载相关数据。2.根据权利要求1所述的提高PDF文档在线浏览加载速度的装置,其特征在于,还包括:交互式表单模块,用于当用户指定页面的页面对象包括交互式表单时,从所述PDF文档获取交互式表单项中指定`的所有相关对象的位置和大小,并根据所提取的交互式表单项中指定的所有相关对象的位置和大小调用下载模块从远端服务器获取相应的表格数据,呈现给用户并接受用户的交互式表单操作。3.根据权利要求1所述的提高TOF文档在线浏览加载速度的装置,其特征在于,所述页面对象模块还用于当获取页面树失败或对所述页面树进行页面数据分析失败时,调用所述下载模块下载整个PDF文档,然后呈现给用户。4.根据权利要求1所述的提高PDF文档在线浏览加载速度的装置,其特征在于,所述判断模块还用于当判断结果为所述PDF文档为线性文件时,调用所述下载模块直接下载所述PDF文档第I页的内容,呈现给用户,然后按照非线性文件方式对之后的页面进行处理,并将获取的页面呈现给用户,其中线性文件第I页的内容位于PDF文档的开头。5.一种提高PDF文档在线浏览加载速度的方法,其特征在于,包括以下步骤:从远端服务器获取PDF文档的属性信息,根据所述属性信息判断所述PDF文档是否为非线性文件;如果所述PDF文档为非线性文件,则从远端服务器获取所述PDF文档的交叉索引表数据,从所述交叉索引表数据中各对象的位置和大小确定所述PDF文档的页面树的位置和大小,并根据所确定的页面树的位置和大小从远端服务器获取所述PDF文档的页面树;将所获取的页面树呈现给用户,接受用户对所述页面树中页面的选择,对所述页面树进行页面数据分析,从所述页面树中提取出用户指定页面对象的位置和大小,根据所述页面对象的位置和大小从远端服务器获取对应的页面对象数据;从远端服务器获取与所获取的页面对象数据对应的资源对象数据和页面内容流数据;根据所获取的页面对象数据、资源对象数据和页面内容流数据得到用户所选择的页面,并呈现给用户。6.根据权利要求5所述的提高TOF文档在线浏览加载速度的方法,其特征在于,还包括以下步骤:当用户指定页面的页面对象包括交互式表单时,从所述PDF文档获取交互式表单项中指定的所有相关对象的位置和大小,并根据所提取的交互式表单项中指定的所有相关对象的位置和大小从远端服务器获取相应的表格数据,呈现给用户并接受用户的交互式表单操作。7.根据权利要求5所述的提高PDF文档在线浏览加载速度的方法,其特征在于,当获取页面树失败或对所述页面树进行页面数据分析失败时,下载整个PDF文档,然后呈现给用户。8.根据权利要求5所述的提高TOF文档在线浏览加载速度的方法,其特征在于,如果所述PDF文档为线性文件,直接下载所述PDF文档第I页的内容,呈现给用户,然后按照非线性文件方式对之后的页面进行处理,并将获取的页面呈现给用户,其中线性文件第I页的内容位于PDF文档的开头。`【文档编号】G06F17/30GK103678698SQ201310741339【公开日】2014年3月26日申请日期:2013年12月27日优先权日:2013年12月27日【发明者】张雪峰申请人:福建福昕软件开发股份有限公司北京分公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1