改个后缀名,Word 文档就露出了真身

同事甩来一份五十页的 Word 文档,几十张配图要全抠出来,只能一张张右键”另存为图片”?其实有条快得多的路——.docx 本身就是个压缩包。

三步看进去

  1. 找一份没加密的 .docx,先复制一份出来,别动原件
  2. 把副本的扩展名从 .docx 改成 .zip。如果文件名后面看不到扩展名,先在文件资源管理器里打开「文件扩展名」显示
  3. 双击打开。Windows 自带的解压功能就能处理,不用装第三方软件

进去后能看到 _rels、docProps、word 三个文件夹,外加根目录下的 [Content_Types].xml。

里面都装了什么

word 文件夹里的 document.xml 是正文所在,文字用 WordprocessingML 这套 XML 语法描述。一句”Hello world”在里面长这样:Hello world。页眉、页脚、脚注、批注、样式各占独立文件,Word 打开时才把零件拼成你看到的版面。[Content_Types].xml 声明包里有哪些内容类型,_rels 记录各部件的关系,包括正文对图片的引用。

最实用的是 word/media 文件夹,文档里嵌的所有图片都以独立 JPEG 或 PNG 躺在里面,全选一次拷走。但要注意:Word 会按图片设置压缩或重采样,这里存的未必是你当初插入的原图。

另一个救命场景是文档损坏。只要 ZIP 容器完好,就能从 document.xml 捞出还活着的文字,从 media 捞出图片。这不是万能药——损坏可能是 XML 非法、关系断裂、文件缺失或数据真丢了——但总比对着”Word 在文档中发现无法读取的内容”干瞪眼强。

这不是彩蛋,是标准

从 Office 2007 起就是这样了。这套格式叫 Office Open XML,2006 年成为 ECMA-376 标准,2008 年又被定为 ISO/IEC 29500。在那之前的 .doc 用二进制的 OLE 复合文件格式,同样是”文件里套文件系统”,只是不啃规范根本读不懂。

我的判断是,知道这一层的价值不在炫技,而在于你从此不会再把 Word 文档当成打不开就没救的黑箱。

来源:MakeUseOf