①【项目背景】
昆区一家律所,开庭前一晚 11 点,一份 86 页的代理词打不开,Word 提示「此文件的内容存在问题,是否恢复」。点恢复,出来一堆乱码;改扩展名改 zip,解压报错在 word/document.xml。客户已经准备重写了。
docx 本质是 zip 容器,里面 document.xml 是正文、media 是图片、styles.xml 是样式。打不开不等于内容没了,多半是某一段 XML 被截断或实体没转义。
②【咨询设计】
第一步复制三份,原件只读。用 7-Zip 打开,能看到 document.xml 但 CRC 错误,说明中央目录完好、数据区有坏块。用 zip -FF 修复容器,仍失败,说明坏在 XML 层。于是改用流式解析:Python 的 lxml 以 recover 模式读取,把能解析的节点全部提取,正文按 w:p 段落还原,图片从 media 目录按 rId 关系重新挂回。
很多客户觉得文件坏了就只能重写,实际上 Word 的「打开并修复」只重建容器,不修 XML;真正管用的是把 XML 拆成文本流再重组。还有一种情况更要命:文件放在共享盘上,编辑时网络瞬断,Word 写的临时锁文件没释放,主文件尾部只写了半段 XML,解压时 CRC 对不上。这次 86 页里救回 84 页正文、37 张图,丢的是最后两页的表格边框。
③【施工规划】
操作在虚拟机里做,断网,避免宏或外链触发。先用 unzip -l 列出条目,确认 document.xml 大小异常(正常 86 页约 1.2MB,这个只有 640KB,明显被截断)。用 xmllint --recover 生成可读副本,再写脚本按
图片恢复要配对 rId:document.xml.rels 里 rId 对应 media/image1.png,如果 rels 也坏了,就按文件头 FF D8 FF 扫 media 目录,按修改时间排序重新插入。表格丢边框的,用样式模板批量重刷,比手工画快得多。
④【安全补丁】
修完的文档另存为新文件,不走「启用编辑」——带宏的 docm 一律先改后缀再打开。律所这类文档涉及当事人信息,修复用的临时目录放在加密容器里,交付后立即粉碎。另外建议他们开 Word 的「自动恢复信息保存间隔 3 分钟」和 OneDrive 版本历史,真正的保险不是修复技术,是版本留存。
⑤【验收交付】
逐页比对:页数 84/86、字数 21,860、图片 37 张、页眉页脚完整、目录可更新。打印 PDF 抽检 10 页版式无错位。交付修复件、提取的纯文本备份、图片原始目录,以及一份「文档损坏自救三步」说明。
⑥【售后承诺】
文档打不开、表格乱版,2 小时上门,大年三十 17704868686 也接。修复前先镜像,修不好不收费,终身免费咨询。
【不舍昼夜技术 · 包头IT全生命周期服务】
业务全闭环:咨询规划、方案设计、工程实施、竣工验收、维保售后。
咱能干的:包头修电脑/装监控/拉网线/做系统/救数据/办软件/卖耗材。
技术范畴:5G通信、大数据服务、信息系统集成、网络安全、商用密码、平面设计。
服务区域:昆区、青山区、九原区、东河区、高新区等包头全境,随叫随到。
技术热线:17704868686(本地专业团队,不舍昼夜为您守候!)