是否有任何docx修复工具可以提供有意义的错误消息?

时间:2013-08-13 17:34:54

标签: docx

我正在努力找到损坏的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>

4 个答案:

答案 0 :(得分:0)

答案 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