我正在努力找到损坏的 docx 文件的原因。
似乎有数百万工具在那里修复损坏的文件-我已经尝试了 5,所有修复精美,但没有一个给出任何错误来源的指示。
有人知道吗?
开源将是一个奖金。
谢谢
UPDATE:我尝试使用 Frankpl 推荐的 Open XML SDK 2.0 生产力工具。它看起来很有希望,但它拒绝打开我的损坏文件,无论是独立还是与另一个比较。
我发现文件的 [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>
不是 docx 修复工具,但Open XML SDK 2.0 for Microsoft Office包含一个名为“Open XML SDK 2.0 Productivity Tool for Microsoft Office”的工具,您可以使用它来比较两个 docx 文件(如损坏的和工作的)。
老问题我知道,但只是说任何人有类似的问题。
上面的内容文件不会是问题的来源。(订单不是问题,它只是修复上的单词-重新编号 ID 和重新订购)
可能导致的东西只是在 zip 中有额外的文件不属于那里。
大多数时候,当它抛出它的手在空气中,并没有给你一个提示,这是结构元数据出了问题。
我的意思是,不是指向 document.xml 中的关系 id 的无效指针(例如),而是无效的关系文件本身。例如,指向 document.xml.rels 中不在 [Content_Types].xml 中的内容类型。
然而,当字修复一切它重新编号所有它的 ID(和重新排序),所以比较工具是困难的。
检查文件列表是否相同,专注于 [Content_Types].xml 和 document.xml.rels(以及其他 rels 文件),祝你好运!
晚了很多年,但您可以使用DocumentFormat.OpenXml.Validation
创建自己的错误检查器:https://msdn.microsoft.com/en-us/library/office/bb497334.aspx
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(18条)