本发明专利技术涉及计算机软件和网络技术领域,提供一种远程阅读PDF文件的方法,以对互联网上的PDF文件进行读取与访问,该方法包括:获取待阅读PDF文件的长度,在本地创建临时文件;取待阅读PDF文件的头部数据和尾部数据,将获取到的头部数据和尾端数据保存至临时文件中;从临时文件中解析PDF头信息,从临时文件的最后往前查找xref标识,查找到xref标识后解析xref标识内的object表,当识别到startxref标识后,根据startxref标识获取下一个xref表,依此方法获取所有的xref表;本地PDF阅读器的解码器读取临时文件中的xref表,读取各个xref表的object对象并解析。本发明专利技术提出的技术方案无需将互联网上的PDF文件下载到本地进行阅读,因此互联网中的用户体验得到了提升。
【技术实现步骤摘要】
远程阅读PDF文件的方法
本专利技术属于计算机软件和网络
,特别涉及一种远程阅读PDF文件的方法。
技术介绍
PDF(PortableDocumentFormat的简称,意为“便携式文档格式”),是由AdobeSystems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。可移植文档格式是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的MacOS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件在开始使用PDF格式文件。由于PDF文件使用范围越来越广泛,因此市场上出现了许多不同的PDF阅读器。但是,由于目前的PDF阅读器都是本地PDF阅读器,只能进行本地PDF文件读取与访问,无法对互联网上的PDF文件进行读取与访问。
技术实现思路
【要解决的技术问题】本专利技术的目的是提供一种远程阅读PDF文件的方法,以对互联网上的PDF文件进行读取与访问。【技术方案】本专利技术是通过以下技术方案实现的。本专利技术涉及一种远程阅读PDF文件的方法,包括步骤:A、向服务器发送http请求,获取待阅读PDF文件的长度,在本地创建临时文件,所述临时文件的长度与获取到的待阅读PDF文件长度相同;B、向服务器发送http请求,获取待阅读PDF文件的头部数据和尾部数据,将获取到的头部数据和尾端数据保存至步骤A中所创建的临时文件中,所述头部数据和尾部数据按照预设数据长度进行获取;C、从临时文件中解析PDF头信息,从临时文件的最后往前查找xref标识,查找到xref标识后解析xref标识内的object表,当识别到startxref标识后,根据startxref标识获取下一个xref表,依此方法获取所有的xref表,将获取到的xref表保存至临时文件中;D、本地PDF阅读器的解码器读取临时文件中的xref表,读取各个xref表的object对象并解析。作为一种优选的实施方式,所述步骤D中,当读取xref表的object对象时出现数据错误,则向服务器发送http请求,获取该xref表的object对象并保存在临时文件中。作为另一种优选的实施方式,所述步骤A中创建的临时文件的扩展名为pdf。作为另一种优选的实施方式,所述头部数据和尾部数据的预设数据长度均为100KB。作为另一种优选的实施方式,所述xref表的存储结构为map键值对,所述map键值对的第一列为object序号、第二列为是否已经存储的标志。【有益效果】本专利技术提出的技术方案具有以下有益效果:本专利技术采用http与PDF解码相结合的方法对远程PDF文件进行读取与访问,在解码的过程中,通过http获取文件对应的PDF头数据、xref表和Object对象的数据,并做缓存,然后PDF解码工具在缓存中读取数据,通过本专利技术,无需将互联网上的PDF文件下载到本地进行阅读,因此互联网中的用户体验得到了提升。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将对本专利技术的具体实施方式进行清楚、完整的描述。实施例一实施例一提供一种远程阅读PDF文件的方法,该方法包括以下步骤:(一)、客户端向服务器发送http请求,获取待阅读PDF文件的长度,在本地创建临时文件,其中临时文件的扩展名为pdf,临时文件的长度与获取到的待阅读PDF文件长度相同。(二)、客户端向服务器发送http请求,获取待阅读PDF文件的头部数据和尾部数据,将获取到的头部数据和尾端数据保存至步骤(一)中所创建的临时文件中,其中头部数据和尾部数据按照预设数据长度进行获取,具体地,本实施例中的头部数据和尾部数据的长度均为100KB。(三)、从临时文件中解析PDF头信息,从临时文件的最后往前查找xref标识,查找到xref标识后解析xref标识内的object表,当识别到startxref标识后,根据startxref标识获取下一个xref表,依此方法获取所有的xref表,将获取到的xref表缓存至临时文件中,具体地,xref表的存储结构为map键值对,map键值对的第一列为object表的序号、第二列为是否已经存储的标志。(四)、本地PDF阅读器的解码器读取临时文件中的xref表,读取各个xref表的object对象并解析。当读取xref表的object对象时出现数据错误,则向服务器发送http请求,获取该xref表的object对象并保存在临时文件中,然后再解析,之后就不断的请求后面的object对象,并与解析过程并行处理,如果解析object对象时发现数据错误,则查询http请求状态,如果当前没有进行http请求,则发送http请求,否则,在临时文件中缓存的xref表中查看当前object对象是否已经缓存,如果没有缓存,则等待200毫秒,并在等待的时候通过http请求获取连续的100KB左右数据的object对象,如果数据总共少于100KB,则获取所有的object对象数据。如果已经缓存,就直接读取使用。获取到object对象完后,做好标记,并且让解码器进行解码。当解码器解码出错,而且出错原因为数据损坏,则进行http请求获取从当前object对象到之后100K左右数据大小的object对象,然后再次解码,尝试三次,如果均出错则报出错误,并且退出。需要说明,本实施例请求object对象数据时,每次刚好多于100K,请求object对象的大小的计算方式为:假设序号1~N的object对象的数据集和大于100K,序号1~(N–1)个object对象的数据集和小于100K,则需要请求序号1~N的object对象。本实施例中,客户端与服务器基于http进行通信,并工作在一个独立的线程中,具体包括:(1)、收到需要的http请求;(2)把请求加入队列Queue中;(3)从队列Queue中取请求,并完成请求的发送和接收,然后通知解码器运行;(4)循环步骤(3),并且步骤(3)从第一次http请求开始一直到完成所有文件内容的读取过程中一直运行,运行完毕后关闭或通过手动方式结束。从以上实施例可以看出,本专利技术实施例采用http与PDF解码相结合的方法对远程PDF文件进行读取与访问,在解码的过程中,通过http获取文件对应的PDF头数据、xref表和Object对象的数据,并做缓存,然后PDF解码工具在缓存中读取数据,通过本专利技术实施例,无需将互联网上的PDF文件下载到本地进行阅读,因此互联网中的用户体验得到了提升。需要说明,上述描述的实施例是本专利技术的一部分实施例,而不是全部实施例,也不是对本专利技术的限制。基于本专利技术的实施例,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术的保护范围。本文档来自技高网...
【技术保护点】
一种远程阅读PDF文件的方法,其特征在于包括步骤:A、向服务器发送http请求,获取待阅读PDF文件的长度,在本地创建临时文件,所述临时文件的长度与获取到的待阅读PDF文件长度相同;B、向服务器发送http请求,获取待阅读PDF文件的头部数据和尾部数据,将获取到的头部数据和尾端数据保存至步骤A中所创建的临时文件中,所述头部数据和尾部数据按照预设数据长度进行获取;C、从临时文件中解析PDF头信息,从临时文件的最后往前查找xref标识,查找到xref标识后解析xref标识内的object表,当识别到startxref标识后,根据startxref标识获取下一个xref表,依此方法获取所有的xref表,将获取到的xref表保存至临时文件中;D、本地PDF阅读器的解码器读取临时文件中的xref表,读取各个xref表的object对象并解析。
【技术特征摘要】
1.一种远程阅读PDF文件的方法,其特征在于包括步骤:A、向服务器发送http请求,获取待阅读PDF文件的长度,在本地创建临时文件,所述临时文件的长度与获取到的待阅读PDF文件长度相同;B、向服务器发送http请求,获取待阅读PDF文件的头部数据和尾部数据,将获取到的头部数据和尾端数据保存至步骤A中所创建的临时文件中,所述头部数据和尾部数据按照预设数据长度进行获取;C、从临时文件中解析PDF头信息,从临时文件的最后往前查找xref标识,查找到xref标识后解析xref标识内的object对象,当识别到startxref标识后,根据startxref标识获取下一个xref表,依此方法获取所有的xref表,将获取到的xref表保存至临时文件中;D、本地PDF阅读器的解码...
【专利技术属性】
技术研发人员:杨毅,王昆,张言涛,
申请(专利权)人:四川长虹电器股份有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。