我正在努力找到损坏的docx文件的原因。
似乎有数百万工具用于修复损坏的文件 - 我已经尝试了5个所有修复都很漂亮,但没有一个给出任何错误来源的指示。
有人知道吗?
开源将是一个奖励。
感谢。
更新
我尝试使用frankpl推荐的Open XML SDK 2.0 Productivity Tool。它看起来很有希望,但它拒绝独立打开我的腐败文件或与另一个文件进行比较。
我发现文件的[Content_Types] .xml部分之间存在差异,但是越接近它只是不同的顺序 - 我认为这不会导致损坏?
在有效(由Word修复)文件中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
<Default Extension="xml" ContentType="application/xml"/>
<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>
<Override PartName="/word/numbering.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"/>
<Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/>
<Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/>
<Override PartName="/word/stylesWithEffects.xml" ContentType="application/vnd.ms-word.stylesWithEffects+xml"/>
<Override PartName="/word/settings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"/>
<Override PartName="/word/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/>
<Override PartName="/word/fontTable.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"/>
<Override PartName="/word/webSettings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"/>
<Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/>
</Types>
在腐败的文件中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
<Default Extension="xml" ContentType="application/xml"/>
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>
<Override PartName="/word/numbering.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"/>
<Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/>
<Override PartName="/word/stylesWithEffects.xml" ContentType="application/vnd.ms-word.stylesWithEffects+xml"/>
<Override PartName="/word/settings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"/>
<Override PartName="/word/webSettings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"/>
<Override PartName="/word/fontTable.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"/>
<Override PartName="/word/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/>
<Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/>
<Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/>
</Types>
答案 0 :(得分:0)
以下是免费的DOCX修复工具列表:
http://www.docxrepairtoolbox.com/
http://sourceforge.net/projects/damageddocx2txt/
http://sourceforge.net/projects/quickwordrecovr/
http://download.cnet.com/SysInfoTools-Docx-Repair/3000-2248_4-75330500.html
答案 1 :(得分:0)
不是docx修复工具,但Open XML SDK 2.0 for Microsoft Office包含一个名为“Open XML SDK 2.0 Productivity Tool for Microsoft Office”的工具,您可以使用它来比较两个docx文件(如腐败文件和工作文件)。
答案 2 :(得分:0)
老问题我知道,但只是对任何有类似问题的人说。
上述内容文件不会成为问题的根源。 (顺序不是问题,它只是修复单词 - 重新编号ID和重新排序)
可能导致损坏的东西只是在zip中有不属于那里的额外文件。
大多数情况下,当它抛出它的空气并没有给你一个提示时,它就是出错的结构元数据。
我的意思是,不是指向document.xml中的关系id的无效指针(例如),而是一个无效的关系文件本身。例如,指向document.xml.rels中不在[Content_Types] .xml中的内容类型。
但是,当word修复所有内容时,它会重新编号所有ID(和重新排序),因此比较工具很难。
检查文件列表是否相同,专注于诸如[Content_Types] .xml和document.xml.rels(以及其他rels文件)之类的东西,祝你好运!
答案 3 :(得分:0)
很晚很多年了,但您可以使用DocumentFormat.OpenXml.Validation
创建自己的错误检查器:https://msdn.microsoft.com/en-us/library/office/bb497334.aspx