文件的修复方法技术

技术编号:39494918 阅读:5 留言:0更新日期:2023-11-24 11:21
本申请适用于修复技术领域,提供了一种文件的修复方法

【技术实现步骤摘要】
文件的修复方法、装置、终端设备和可读存储介质


[0001]本申请属于修复
,尤其涉及一种文件的修复方法

装置

终端设备和可读存储介质


技术介绍

[0002]PDF(Portable Document Format)
,即可携带文件格式,是一种通用的文档格式,其具有格式稳定,兼容性好,体积小,方便网络传输等优点,因此受到广泛使用
。PDF
文件通常包括文件头

文件体

交叉引用表及文件尾等结构,其中,文件体是多个对象块的集合

在相关技术中,当
PDF
文件发生损坏时,无法对
PDF
文件进行修复,以使其能正常打开


技术实现思路

[0003]本申请实施例提供一种文件的修复方法

装置

终端设备和可读存储介质,可以解决相关技术无法对损坏的
PDF
文件进行修复的问题

[0004]第一方面,本申请实施例提供了一种文件的修复方法,包括:
[0005]获取待修复文件,待修复文件为损坏的
PDF
文件;
[0006]提取待修复文件中的缺失对象块集合,缺失对象块集合为待修复文件中剩余的对象块组成的集合;
[0007]对缺失对象块集合进行解析,得到缺失逻辑对象块集合和对应的缺失数据对象块集合,其中,缺失逻辑对象块集合与对缺失数据对象块集合中对应的对象块之间存在引用关系;
[0008]对缺失逻辑对象块集合进行补充,得到完整逻辑对象块集合;
[0009]修改完整逻辑对象块集合中的完整逻辑对象块的引用关系,得到修改后的完整逻辑对象块集合,并基于修改后的完整逻辑对象块集合以及缺失数据对象块集合得到完整对象块集合;
[0010]基于完整对象块集合生成对应的交叉引用表和文件尾;
[0011]基于新创建的文件头

完整对象块集合

交叉引用表以及文件尾生成修复文件,修复文件为修复好的
PDF
文件

[0012]第二方面,本申请实施例提供了一种文件的修复装置,包括:
[0013]第一获取模块,用于获取待修复文件,待修复文件为损坏的
PDF
文件;
[0014]提取模块,用于提取待修复文件中的缺失对象块集合,缺失对象块集合为待修复文件中剩余的对象块组成的集合;
[0015]解析模块,用于对缺失对象块集合进行解析,得到缺失逻辑对象块集合和对应的缺失数据对象块集合,其中,缺失逻辑对象块集合与对缺失数据对象块集合中对应的对象块之间存在引用关系;
[0016]补充模块,用于对缺失逻辑对象块集合进行补充,得到完整逻辑对象块集合;
[0017]修改模块,用于修改完整逻辑对象块集合中的完整逻辑对象块的引用关系,得到
修改后的完整逻辑对象块集合,并基于修改后的完整逻辑对象块集合以及缺失数据对象块集合得到完整对象块集合;
[0018]第一生成模块,用于基于完整对象块集合生成对应的交叉引用表和文件尾;
[0019]第二生成模块,用于基于新创建的文件头

完整对象块集合

交叉引用表以及文件尾生成修复文件,修复文件为修复好的
PDF
文件

[0020]第三方面,本申请实施例提供了一种终端设备,包括存储器

处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述文件的修复方法的步骤

[0021]第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述文件的修复方法的步骤

[0022]第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述文件的修复方法

[0023]本申请实施例与现有技术相比的有益效果是:本申请实施例通过获取待修复文件,提取待修复文件中的缺失对象块集合,并对缺失对象块集合进行解析,得到缺失逻辑对象块集合和对应的缺失数据对象块集合,再对缺失逻辑对象块集合进行补充,得到完整逻辑对象块集合,并修改完整逻辑对象块集合中的完整逻辑对象块的引用关系,得到修改后的完整逻辑对象块集合,然后基于修改后的完整逻辑对象块集合以及缺失数据对象块集合得到完整对象块集合,再基于完整对象块集合生成对应的交叉引用表和文件尾,最终基于新创建的文件头

完整对象块集合

交叉引用表以及文件尾生成修复文件

本申请实施例通过对缺失逻辑对象块集合进行补充,得到完整逻辑对象块集合,从而将待修复文件的文件逻辑结构树补充完整,进而得到完整对象集合,并根据完整对象集合得到修复文件

由于修复文件中的文件逻辑结构树是完整的,因此修复文件可以正常打开,从而实现了对损坏的
PDF
文件的修复

附图说明
[0024]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图

[0025]图1是本申请实施例提供的一种文件的修复方法的实现流程示意图;
[0026]图2是本申请实施例提供的逻辑结构树的示意图;
[0027]图3是本申请实施例提供的
page
对象块的内容示意图;
[0028]图4是本申请实施例提供的对缺失逻辑对象块集合进行补充的实现流程示意图;
[0029]图5是本申请实施例提供的补充
page
对象块的父亲逻辑对象块的实现流程示意图;
[0030]图6是本申请实施例提供的补充
pages
对象块的孩子逻辑对象块的实现流程示意图;
[0031]图7是本申请实施例提供的补充缺失逻辑对象块集合中的父亲逻辑对象块的一种
实现流程示意图;
[0032]图8是本申请实施例提供的补充缺失逻辑对象块集合中的父亲逻辑对象块的另一种实现流程示意图;
[0033]图9是本申请实施例提供的补充
pages
对象块的父亲逻辑对象块的实现流程示意图;
[0034]图
10
是本申请实施例提供的补充缺失逻辑对象块集合中的孩子逻辑对象块的实现流程示意图;
[0035]图
11
是本申请实施例提供的
pages
对象块的内容示意图;
[0036]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种文件的修复方法,其特征在于,包括:获取待修复文件,所述待修复文件为损坏的
PDF
文件;提取所述待修复文件中的缺失对象块集合,所述缺失对象块集合为所述待修复文件中剩余的对象块组成的集合;对所述缺失对象块集合进行解析,得到缺失逻辑对象块集合和对应的缺失数据对象块集合,其中,所述缺失逻辑对象块集合与对所述缺失数据对象块集合中对应的对象块之间存在引用关系;对所述缺失逻辑对象块集合进行补充,得到完整逻辑对象块集合;修改所述完整逻辑对象块集合中的完整逻辑对象块的引用关系,得到修改后的完整逻辑对象块集合,并基于所述修改后的完整逻辑对象块集合以及所述缺失数据对象块集合得到完整对象块集合;基于所述完整对象块集合生成对应的交叉引用表和文件尾;基于新创建的文件头

所述完整对象块集合

所述交叉引用表以及所述文件尾生成修复文件,所述修复文件为修复好的
PDF
文件
。2.
如权利要求1所述的文件的修复方法,其特征在于,所述缺失逻辑对象块集合包括父亲逻辑对象块以及孩子逻辑对象块,所述对所述缺失逻辑对象块集合进行补充,得到完整逻辑对象块集合,包括:补充所述缺失逻辑对象块集合中的父亲逻辑对象块;补充所述缺失逻辑对象块集合中的孩子逻辑对象块;基于所述缺失逻辑对象块集合

所述父亲逻辑对象块以及所述孩子逻辑对象块得到完整逻辑对象块集合
。3.
如权利要求2所述的文件的修复方法,其特征在于,所述缺失逻辑对象块集合包括
page
对象块,所述补充所述缺失逻辑对象块集合中的父亲逻辑对象块,包括:基于所述
page
对象块的父亲引用关系寻找所述
page
对象块的父亲逻辑对象块;当所述缺失逻辑对象块集合中不存在所述
page
对象块的父亲逻辑对象块时,基于所述
page
对象块的父亲引用关系创建所述
page
对象块的父亲逻辑对象块
。4.
如权利要求2所述的文件的修复方法,其特征在于,所述缺失逻辑对象块集合包括
pages
对象块,所述补充所述缺失逻辑对象块集合中的父亲逻辑对象块,还包括:基于所述
pages
对象块的父亲引用关系寻找所述
pages
对象块的父亲逻辑对象块;当所述缺失逻辑对象块集合中不存在所述
pages
对象块的父亲逻辑对象块时,基于所述
pages
对象块的父亲引用关系创建所述
pages
对象块的父亲逻辑对象块
。5.
如权利要求2所述的文件的修复方法,其特征在于,所述缺失逻辑对象块集合包括
pages
对象块,所述补充所述缺失逻辑对象块集合中的孩子逻辑对象块,包括:基于所述
pages
...

【专利技术属性】
技术研发人员:孙丽
申请(专利权)人:深圳软牛科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1