CN118012656A - 损坏pdf文档修复方法、装置、设备及存储介质 - Google Patents
损坏pdf文档修复方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN118012656A CN118012656A CN202410229941.6A CN202410229941A CN118012656A CN 118012656 A CN118012656 A CN 118012656A CN 202410229941 A CN202410229941 A CN 202410229941A CN 118012656 A CN118012656 A CN 118012656A
- Authority
- CN
- China
- Prior art keywords
- object data
- data block
- pdf document
- damaged
- data blocks
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012216 screening Methods 0.000 claims abstract description 13
- 238000010276 construction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003054 catalyst Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/168—Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机领域,公开了一种损坏PDF文档修复方法、装置、设备及存储介质。该方法包括:接收PDF文档修复请求,查找损坏PDF文档中的各对象数据块;从各对象数据块中筛选出已有页面对象数据块,并根据各对象数据块构建新页面对象数据块;根据新页面对象数据块及已有页面对象数据块构造总页面对象;根据总页面对象构造根对象数据块,并根据各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块,得到新PDF文档。在本发明实施例中,能修复被破坏的PDF格式,使PDF文档能正常打开,从而实现对损坏PDF文档的修复。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种损坏PDF文档修复方法、装置、设备及存储介质。
背景技术
PDF文件作为一种广泛使用的编辑文件格,已经在计算机及互联网中被广大用户所使用。PDF是一种电子文件格式,这种格式与操作系统平台无关,而正是这一独特的性能使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用PDF格式文件。
与此同时,随着人们对PDF文件使用的增多,与PDF文件使用相关的问题也就接踵而来,例如用户的PDF文件在传输、保存的时候因为外部因素(设备断电等)导致PDF文件数据被损坏,无法对PDF文件进行修复,以使其能正常打开。
发明内容
本发明的主要目的在于解决如何修复损坏PDF文档的技术问题。
本发明第一方面提供了一种损坏PDF文档修复方法,所述损坏PDF文档修复方法包括:
接收PDF文档修复请求,查找损坏PDF文档中的各对象数据块,所述PDF文档修复请求中携带有所述损坏PDF文档;
从所述各对象数据块中筛选出已有页面对象数据块,并根据所述各对象数据块构建新页面对象数据块;
根据所述新页面对象数据块及所述已有页面对象数据块构造总页面对象;
根据所述总页面对象构造根对象数据块,并根据所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块,得到新PDF文档。
可选的,在本发明第一方面的第一种实现方式中,所述根据所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块,得到新PDF文档包括:
填充所述损坏PDF文档的头部数据块,并新建空文件,将所述头部数据块写入到所述空文件的头部;
将所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块写入所述空文件;
构建交叉引用表,将所述交叉引用表写入所述空文件;
获取文件尾部数据块,将所述文件尾部数据块写入到所述空文件,得到新PDF文档。
可选的,在本发明第一方面的第二种实现方式中,所述构建交叉引用表,将所述交叉引用表写入所述空文件包括:
记录所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块写入到所述空文件中的物理位置;
根据所述物理位置构建交叉引用表;
将所述交叉引用表写入所述空文件。
可选的,在本发明第一方面的第三种实现方式中,所述根据所述物理位置构建交叉引用表包括:
计算已有对象数据块和构建的对象数据块的数目总和;
获取关键字及所述各对象数据块中首个对象块序号;
根据所述关键字、所述首个对象块序号、所述数目总和、以及所述物理位置构建交叉引用表。
可选的,在本发明第一方面的第四种实现方式中,所述接收PDF文档修复请求,所述PDF文档修复请求中携带有损坏PDF文档,查找所述损坏PDF文档中的各对象数据块包括:
接收PDF文档修复请求,所述PDF文档修复请求中携带有损坏PDF文档;
查找所述损坏PDF文档的起始标识码;
根据所述起始标识码,查找所述损坏PDF文档中的各对象数据块,并记录所述各对象数据块的数据内容。
可选的,在本发明第一方面的第五种实现方式中,所述从所述各对象数据块中筛选出已有页面对象数据块,并根据所述各对象数据块构建新页面对象数据块包括:
从所述各对象数据块中筛选出已有页面对象数据块;
解析筛选后剩余对象数据块,记录所述剩余对象数据块的对象序号及对应的父对象序号;
根据所述对象序号及对应的父对象序号构建新页面对象数据块。
可选的,在本发明第一方面的第六种实现方式中,所述接收PDF文档修复请求,所述PDF文档修复请求中携带有损坏PDF文档,查找所述损坏PDF文档中的各对象数据块之前,还包括:
推送文档选择菜单,根据在所述文档选择菜单中的选择结果,获取目标PDF文档;
判断所述目标PDF文档是否损坏,若是,则解析损坏PDF文档的头部。
本发明第二方面提供了一种损坏PDF文档修复设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述损坏PDF文档修复设备执行上述的损坏PDF文档修复方法。
本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的损坏PDF文档修复方法。
在本发明实施例中,接收PDF文档修复请求,查找损坏PDF文档中的各对象数据块;从所述各对象数据块中筛选出已有页面对象数据块,并根据所述各对象数据块构建新页面对象数据块;根据所述新页面对象数据块及所述已有页面对象数据块构造总页面对象;根据所述总页面对象,构造根对象数据块,并根据所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块,得到新PDF文档。本发明中,通过各对象数据块构建页面对象数据块、总页面对象、根对象数据块,得到新PDF文档,能通过构建对象数据块,修复被破坏的PDF格式,使PDF文档能正常打开,从而实现对损坏PDF文档的修复。
附图说明
图1为本发明实施例中损坏PDF文档修复方法的一个实施例示意图;
图2为本发明实施例中损坏PDF文档修复装置的一个实施例示意图;
图3为本发明实施例中损坏PDF文档修复设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种损坏PDF文档修复方法、装置、设备及存储介质。
下面将参照附图更详细地描述本发明公开的实施例。虽然附图中显示了本发明公开的某些实施例,然而应当理解的是,本发明公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本发明公开的附图及实施例仅用于示例性作用,并非用于限制本发明公开的保护范围。
在本发明公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中损坏PDF文档修复方法的一个实施例包括:
S100,接收PDF文档修复请求,查找损坏PDF文档中的各对象数据块。
在本实施例中,用户通过终端发送PDF文档修复请求给服务器,其中,PDF文档修复请求中携带有损坏PDF文档,服务器接收PDF文档修复请求,获取损坏PDF文档,其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。PDF文档通常包括文件头、文件体、交叉引用表及文件尾等结构,其中,文件体是多个对象块的集合,包含了组成PDF文件中所含文档的对象,文件体中可以包括对象数据块,对象数据块则记录了PDF文档的关键数据,例如图片信息、文本信息、字体信息等。
S200,从各对象数据块中筛选出已有页面对象数据块,并根据各对象数据块构建新页面对象数据块。
在本实施例中,首先查找损坏PDF文档中的每一个对象数据块,在这些PDF对象数据块中筛选出已有页面对象数据块,并根据各对象数据块,构建新页面对象数据块,页面对象数据有固定的结构:“序号0起始标识码<</Type/Pages/Count对应的子对象总数/Kids[子对象序号0R子对象序号0R…]>>结束标识码”,按照上述这种结构去构建一个页面对象数据块。
S300,根据新页面对象数据块及已有页面对象数据块构造总页面对象。
在本实施例中,把前面构建出来的页面对象数据块和已有页面对象数据块,作为总页面对象的子对象,依旧按照上述“序号0起始标识码<</Type/Pages/Count对应的子对象总数/Kids[子对象序号0R子对象序号0R…]>>结束标识码”结构方式,构造一个总页面对象,记录全部的页面对象信息,相当于目录。
S400,根据总页面对象构造根对象数据块,并根据各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块,得到新PDF文档。
在本实施例中,构建根对象数据块,以固定结构“对象序号0起始标识码<</Type/Catalog/Pages总页面对象序号0R>>结束标识码”来构建,根对象数据块指明目录结构所在,即总页面对象数据块。然后构建总的PDF文档,即建立一个新的空文件,将各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块写入到空文件中,得到新PDF文档,以实现损坏PDF文档的修复。
在本发明第一方面一种可选的实施方式中,根据各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块,得到新PDF文档包括:
填充损坏PDF文档的头部数据块,并新建空文件,将头部数据块写入到空文件的头部;将各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块写入空文件;构建交叉引用表,将交叉引用表写入空文件;获取文件尾部数据块,将文件尾部数据块写入到空文件,得到新PDF文档。
在本实施例中,填充受损PDF文档的头部数据块,头部数据块包括PDF文件的固定开始标识符、版本号,是固定的数据格式,头部数据块的数据不完整同样也会导致PDF文档无法正常打开。新建空文件,首先将头部数据块写入空文件,然后将各对象数据块写入,再依次将新页面对象数据块、总页面对象、以及根对象数据块写入空文件,然后在此时开始构建交叉引用表,再写入空文件,最后是文件尾部数据块,其固定格式是:“trailer<</Size对象数据块总数/Root根对象序号0R>>startxref交叉引用表xref的起始位置%%EOF(文件结束标识码)”,将文件尾部数据块写入空文件,完成新PDF文档构建,即完成对损坏PDF文档的修复。
在本发明第一方面一种可选的实施方式中,构建交叉引用表,将交叉引用表写入空文件包括:
记录各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块写入到空文件中的物理位置;根据物理位置构建交叉引用表;将交叉引用表写入空文件。
在本实施例中,将各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块写入到空文件中的同时,记录各对象数据块、新页面对象数据块、总页面对象、根对象数据块写入的物理位置,根据写入的这些物理位置构建交叉引用表,用于记录所有对象块的起始位置在PDF文件中的偏移位置,将各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块写入到空文件中后,再将交叉引用表写入空文件。
在本发明第一方面一种可选的实施方式中,根据物理位置构建交叉引用表包括:
计算已有对象数据块和构建的对象数据块的数目总和;获取关键字及各对象数据块中首个对象块序号;根据关键字、首个对象块序号、数目总和、以及物理位置构建交叉引用表。
在本实施例中,计算已有对象数据块和构建的对象数据块的数目总和,具体是计算已有对象数据块、及构建的新页面对象数据块、根对象数据块的数目总和。构建交叉引用表,交叉引用表记录每个对象数据块在PDF文档中的物理位置,实现对对象数据的随机访问。交叉引用表由“xref”关键字作为起始,然后接上最开始的对象数据块序号(通常是0)、对象数据块数目总和,最后是每个对象数据块的具体位置,固定格式为:“对象数据块的物理位置(由10位数组成,不足高位补0),该数据块修改次数(由5位数组成,不足高位补0,通常为00000),n 0x0A(结束符)”,然后记录下一个对象数据块位置,这样完成交叉引用表的构建。
在本发明第一方面一种可选的实施方式中,接收PDF文档修复请求,PDF文档修复请求中携带有损坏PDF文档,查找损坏PDF文档中的各对象数据块包括:
接收PDF文档修复请求,PDF文档修复请求中携带有损坏PDF文档;查找损坏PDF文档的起始标识码;根据起始标识码,查找损坏PDF文档中的各对象数据块,并记录各对象数据块的数据内容。
在本实施例中,获取损坏PDF文档,根据PDF格式中对象数据的起始标识码来查找并保存损坏PDF中的每一个对象数据块,对象数据都包含固定的起始标识码(0x6F626A),在起始标识码前记录的是当前对象数据的序号,在起始标识码后是当前对象的数据内容,最后以结束标识码(0x656E646F626A)结尾。根据这种结构,由起始标识码和结束标识码来查找PDF文档中的每一个对象数据块,并且记录数据内容。
在本发明第一方面一种可选的实施方式中,从各对象数据块中筛选出已有页面对象数据块,并根据各对象数据块构建新页面对象数据块包括:
从各对象数据块中筛选出已有页面对象数据块;解析筛选后剩余对象数据块,记录剩余对象数据块的对象序号及对应的父对象序号;根据对象序号及对应的父对象序号构建新页面对象数据块。
在本实施例中,从PDF对象数据块中筛选出已有页面对象数据块,解析筛选后剩余对象数据块,记录剩余每一个对象数据块的对象序号和其父对象序号,由记录的对象序号和对应的父对象序号构建新页面对象数据块,聚合成一个个页面,页面对象数据包含一页PDF所有的文本图片等数据,通过对象序号来访问这些数据。
在本发明第一方面一种可选的实施方式中,接收PDF文档修复请求,PDF文档修复请求中携带有损坏PDF文档,查找损坏PDF文档中的各对象数据块之前,还包括:
推送文档选择菜单,根据在文档选择菜单中的选择结果,获取目标PDF文档;判断目标PDF文档是否损坏,若是,则解析损坏PDF文档的头部。
在本实施例中,系统会推送文档选择菜单,用户在文档选择菜单选择需解析修复的PDF文件,即目标PDF文档,判断目标PDF文档是否损坏,若损坏,则解析损坏PDF文档的头部,以得到PDF文档的头部数据块。
参见图2,本发明第二方面提供了一种损坏PDF文档修复装置,所述损坏PDF文档修复装置包括:
对象数据块查找模块100,用于接收PDF文档修复请求,查找损坏PDF文档中的各对象数据块,PDF文档修复请求中携带有损坏PDF文档;
数据块构建模块200,用于从各对象数据块中筛选出已有页面对象数据块,并根据各对象数据块构建新页面对象数据块;
总页面对象构造模块300,用于根据新页面对象数据块及已有页面对象数据块构造总页面对象;
文档获取模块400,用于根据总页面对象构造根对象数据块,并根据各对象数据块、新页面对象数据块、总页面对象、根对象数据块,得到新PDF文档。
在本发明第二方面一种可选的实施方式中,文档获取模块400还用于填充损坏PDF文档的头部数据块,并新建空文件,将头部数据块写入到空文件的头部;将各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块写入空文件;构建交叉引用表,将交叉引用表写入空文件;获取文件尾部数据块,将文件尾部数据块写入到空文件,得到新PDF文档。
在本发明第二方面一种可选的实施方式中,文档获取模块400还用于记录各对象数据块、新页面对象数据块、总页面对象、以及根对象数据块写入到空文件中的物理位置;根据物理位置构建交叉引用表;将交叉引用表写入空文件。
在本发明第二方面一种可选的实施方式中,文档获取模块400还用于计算已有对象数据块和构建的对象数据块的数目总和;获取关键字及各对象数据块中首个对象块序号;根据关键字、首个对象块序号、数目总和、以及物理位置构建交叉引用表。
在本发明第二方面一种可选的实施方式中,对象数据块查找模块100还用于接收PDF文档修复请求,PDF文档修复请求中携带有损坏PDF文档;查找损坏PDF文档的起始标识码;根据起始标识码,查找损坏PDF文档中的各对象数据块,并记录各对象数据块的数据内容。
在本发明第二方面一种可选的实施方式中,数据块构建模块200还用于从各对象数据块中筛选出已有页面对象数据块;解析筛选后剩余对象数据块,记录剩余对象数据块的对象序号及对应的父对象序号;根据对象序号及对应的父对象序号构建新页面对象数据块。
在本发明第二方面一种可选的实施方式中,损坏PDF文档修复装置还包括:
文件选择模块,用于推送文档选择菜单,根据在文档选择菜单中的选择结果,获取目标PDF文档;判断目标PDF文档是否损坏,若是,则解析损坏PDF文档的头部。
图3是本发明实施例提供的一种损坏PDF文档修复设备的结构示意图,该损坏PDF文档修复设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对损坏PDF文档修复设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在损坏PDF文档修复设备500上执行存储介质530中的一系列指令操作。
基于损坏PDF文档修复设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,Free BSD等等。本领域技术人员可以理解,图3示出的损坏PDF文档修复设备结构并不构成对基于损坏PDF文档修复设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述损坏PDF文档修复方法的步骤。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种损坏PDF文档修复方法,其特征在于,所述损坏PDF文档修复方法包括:
接收PDF文档修复请求,查找损坏PDF文档中的各对象数据块,所述PDF文档修复请求中携带有所述损坏PDF文档;
从所述各对象数据块中筛选出已有页面对象数据块,并根据所述各对象数据块构建新页面对象数据块;
根据所述新页面对象数据块及所述已有页面对象数据块构造总页面对象;
根据所述总页面对象构造根对象数据块,并根据所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块,得到新PDF文档。
2.根据权利要求1所述的损坏PDF文档修复方法,其特征在于,所述根据所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块,得到新PDF文档包括:
填充所述损坏PDF文档的头部数据块,并新建空文件,将所述头部数据块写入到所述空文件的头部;
将所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块写入所述空文件;
构建交叉引用表,将所述交叉引用表写入所述空文件;
获取文件尾部数据块,将所述文件尾部数据块写入到所述空文件,得到新PDF文档。
3.根据权利要求2所述的损坏PDF文档修复方法,其特征在于,所述构建交叉引用表,将所述交叉引用表写入所述空文件包括:
记录所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块写入到所述空文件中的物理位置;
根据所述物理位置构建交叉引用表;
将所述交叉引用表写入所述空文件。
4.根据权利要求3所述的损坏PDF文档修复方法,其特征在于,所述根据所述物理位置构建交叉引用表包括:
计算已有对象数据块和构建的对象数据块的数目总和;
获取关键字及所述各对象数据块中首个对象块序号;
根据所述关键字、所述首个对象块序号、所述数目总和、以及所述物理位置构建交叉引用表。
5.根据权利要求1所述的损坏PDF文档修复方法,其特征在于,所述接收PDF文档修复请求,查找损坏PDF文档中的各对象数据块包括:
接收PDF文档修复请求;
查找损坏PDF文档的起始标识码;
根据所述起始标识码,查找所述损坏PDF文档中的各对象数据块,并记录所述各对象数据块的数据内容。
6.根据权利要求1所述的损坏PDF文档修复方法,其特征在于,所述从所述各对象数据块中筛选出已有页面对象数据块,并根据所述各对象数据块构建新页面对象数据块包括:
从所述各对象数据块中筛选出已有页面对象数据块;
解析筛选后剩余对象数据块,记录所述剩余对象数据块的对象序号及对应的父对象序号;
根据所述对象序号及对应的父对象序号构建新页面对象数据块。
7.根据权利要求1所述的损坏PDF文档修复方法,其特征在于,所述接收PDF文档修复请求,所述PDF文档修复请求中携带有损坏PDF文档,查找所述损坏PDF文档中的各对象数据块之前,还包括:
推送文档选择菜单,根据在所述文档选择菜单中的选择结果,获取目标PDF文档;
判断所述目标PDF文档是否损坏,若是,则解析损坏PDF文档的头部。
8.一种损坏PDF文档修复装置,其特征在于,所述损坏PDF文档修复装置包括:
对象数据块查找模块,用于接收PDF文档修复请求,查找损坏PDF文档中的各对象数据块,所述PDF文档修复请求中携带有所述损坏PDF文档;
数据块构建模块,用于从所述各对象数据块中筛选出已有页面对象数据块,并根据所述各对象数据块构建新页面对象数据块;
总页面对象构造模块,用于根据所述新页面对象数据块及所述已有页面对象数据块构造总页面对象;
文档获取模块,用于根据所述总页面对象构造根对象数据块,并根据所述各对象数据块、所述新页面对象数据块、所述总页面对象、以及所述根对象数据块,得到新PDF文档。
9.一种损坏PDF文档修复设备,其特征在于,所述损坏PDF文档修复设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述损坏PDF文档修复设备执行如权利要求1-7中任一项所述的损坏PDF文档修复方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的损坏PDF文档修复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410229941.6A CN118012656A (zh) | 2024-02-29 | 2024-02-29 | 损坏pdf文档修复方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410229941.6A CN118012656A (zh) | 2024-02-29 | 2024-02-29 | 损坏pdf文档修复方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118012656A true CN118012656A (zh) | 2024-05-10 |
Family
ID=90957588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410229941.6A Pending CN118012656A (zh) | 2024-02-29 | 2024-02-29 | 损坏pdf文档修复方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012656A (zh) |
-
2024
- 2024-02-29 CN CN202410229941.6A patent/CN118012656A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083805B (zh) | 一种将Word文件转换为EPUB文件的方法及系统 | |
US7293006B2 (en) | Computer program for storing electronic files and associated attachments in a single searchable database | |
US20100281070A1 (en) | Data file having more than one mode of operation | |
US9367569B1 (en) | Recovery of directory information | |
CN109885577B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN113157655B (zh) | 一种数据压缩、解压方法、装置、电子设备和存储介质 | |
CN106980665B (zh) | 数据字典实现方法、装置及数据字典管理系统 | |
JP2005267600A5 (zh) | ||
WO2013112415A1 (en) | Indexing structures using synthetic document summaries | |
CN109284273B (zh) | 一种采用后缀数组索引的海量小文件查询方法及系统 | |
CN108563743A (zh) | 一种文件读写方法、系统及设备和存储介质 | |
WO2017036348A1 (zh) | 一种可扩展标记语言xml文档的压缩、解压方法和装置 | |
US20140244582A1 (en) | Apparatus and Methods for Selective Location and Duplication of Relevant Data | |
CN104035993A (zh) | 电子书的存储检索方法、电子书管理系统、阅读系统 | |
US20020143794A1 (en) | Method and system for converting data files from a first format to second format | |
CN115576899A (zh) | 构建索引的方法和装置以及文件查找方法和装置 | |
US6742018B1 (en) | System and method for storing and retrieving data by keywords converted into divided long integers | |
CN113448946B (zh) | 数据迁移方法及装置、电子设备 | |
CN115061990A (zh) | 日志存储方法、日志检索方法、装置、设备及存储介质 | |
CN116126997B (zh) | 一种文献去重存储方法、系统、设备及存储介质 | |
US7568156B1 (en) | Language rendering | |
CN116795803A (zh) | 一种文件数据存储方法、装置、设备及存储介质 | |
US20030220914A1 (en) | Method for managing data in a network | |
CN118012656A (zh) | 损坏pdf文档修复方法、装置、设备及存储介质 | |
CN117493282A (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 |