# Word 批量提取图片：DOCX 内嵌文件与页面图分开

这份自编公开样例是47,856字节的DOCX，包含两张960×540 PNG：蓝色三角形、橙色折线。它来自2026-10-16真实Word导出；2026-10-17在本地复制DOCX为ZIP，再用macOS自带解压命令ditto解包到独立目录，核对word/media中的两张图片，未上传或再次识别。

## 本地操作

1. 保留原DOCX，复制一份放到新的空目录。不要直接在唯一原稿上改扩展名。
2. 对这份副本将完整扩展名.docx改为.zip，再用能读取ZIP的解压工具打开，选择独立的输出目录。本例在macOS命令行实际解压验证；没有声称完成Finder或Windows资源管理器点击实测。不同软件的按钮名称和扩展名显示方式可能不同。
3. 查看解包后的word/media目录。本例只有rId21.png和rId25.png；它们并不按“图1、图2”命名。
4. 分别打开或检查图片：rId21.png是蓝色三角形，rId25.png是橙色折线。不要根据文件名猜正文顺序，其他文档还可能有页眉图标、重复引用或不同格式。
5. 保留DOCX与提取文件。需要图注、Word中裁切后的样子或整个页面时，应回到文稿分别核对；提取内嵌文件不把正文和页面效果烧进图片。

这里的“原图”仅指当前DOCX内保存的图像文件字节。Word以前可能已缩小、压缩或替换图片；解包不能恢复文档中没有保存的相机原片或更高分辨率。

## 样例证据

源DOCX与改名副本的SHA256完全相同，改扩展名没有转换内容。

word/media/rId21.png：18,153字节，960×540，SHA256 3f922726b4be2ac0d2fc6f221af5b3aa4d60e3373f429700a27159732ba9461d。
word/media/rId25.png：19,401字节，960×540，SHA256 3213d5ef3645982b0ffe7bb79b1964d6b32421ac798128e176e9bd664946cb2d。

两张解包文件均与DOCX内同名成员逐字节相同。蓝图的标题、面积式和橙图底部Speed等式均在各自PNG中可见。样例中两张图不同，正文引用也可通过document.xml和relationships核对；这不是任意Word文件的图片数量或顺序保证。

## 与Doc2X页面识别对比

同一DOCX在上一轮实际经过Office PDF和页面解析导出Markdown，原生ZIP24,731字节，得到851×469与1014×526 JPG。标题和面积式另成正文或数学，橙图底部Speed等式被截断。包内word-md-images-native.zip保留该次产品输出，不能当作当前本地提取的PNG结果。

提取嵌入原图、把整页Word生成JPG、识别图中文字，是不同任务。本地解包无需OCR；需要从图片取字再进入识别工作台。原稿包含可编辑表格或公式，也不会因复制word/media而变成图片文件。

## 未覆盖的文件情况

本例只有一份未加密DOCX和两张PNG。旧.doc、加密文件、外链图片、SVG/EMF、组合图形、裁切与滤镜等不保证用相同步骤得到相同外观。旧DOC可先在原办公软件另存为DOCX，打开核对后再尝试；单纯把.doc改为.docx或.zip不是格式转换。

这个核对包由本地整理，不是Doc2X提供了新的DOCX原图提取器。原PNG来自包内原稿，MD图块来自之前实际产品下载；二者来源明确，没有本地补画。

## 离线核对

在完整解压本包后的目录运行Python3 inspect_word_extraction.py。脚本只读取固定的自编样例与PNG，核对ZIP完整性、哈希、源DOCX图片关系及导出图块差异，不联网、不读取账号，不执行DOCX或宏。
