Word转Markdown 完整解决方案(含Typora丢图处理)
大约 3 分钟
Word转Markdown 完整解决方案(含Typora丢图处理)
一、转换方案总览
1. Typora 可视化导入(针对图片需要特殊处理)
操作步骤
- 打开 Typora → 文件 → 导入 → Word 文档(.docx)
- 自动转成可视化 MD,手动修正错乱标题、表格、图片路径 【图片是以相对路径存储的,这里需要额外特殊处理一下】
- 文件 → 导出 Markdown 保存
.md
核心缺陷:导入后图片全部丢失
底层原理:Typora 自带导入功能内部调用 Pandoc,但未启用图片提取参数,仅导出文本内容,Word 内嵌图片不会自动导出,文档内图片路径全部失效无法加载。
说明:软件导入逻辑固定,软件内图像设置无法解决该底层问题,仅能规范后续新增图片,对导入丢失的Word原图无效。
补救方案 =====================================================【额外拓展点,如何提取word中的图片】
- 找到原始
.docx文件,修改后缀名为.zip,解压该压缩包; - 进入解压目录下路径
word/media/,该文件夹存放Word内全部原始图片; - 将
media下所有图片复制到生成的md文件同级目录; - 使用Typora重新打开md文件,相对路径自动匹配,图片正常展示。
2. Pandoc 命令行转换
会存在问题
标题 {#xxx .unnumbered}的冗余标记
前置准备
- 安装 Pandoc:https://pandoc.org/installing.html
- 文件路径建议纯英文,避免中文/空格路径报错
- 仅支持
.docx,老旧.doc需先用 Word 另存为 docx
单文件转换命令(自动提取图片)
pandoc 文档名.docx --extract-media=./images --wrap=none -o 输出文档.md
参数说明:
--extract-media=./images:自动提取Word内所有图片至同级 images 文件夹,md 生成相对图片路径--wrap=none:关闭自动换行,排版整洁无多余空行
Windows PowerShell 批量转换当前目录全部docx
Get-ChildItem *.docx | ForEach-Object { pandoc $_.FullName --extract-media=./images --wrap=none -o ($_.BaseName + ".md") }
macOS / Linux 批量转换脚本
for file in *.docx; do pandoc "$file" --extract-media=./images --wrap=none -o "${file%.docx}.md"; done
3. 在线转换(临时少量无敏感文档)
- 优点:零安装,浏览器本地处理
- 缺点:大文件卡顿、复杂表格排版易错乱,不适合批量、涉密文档
4. Python MarkItDown 转换(代码自动化场景)-- 没测试过
- 安装依赖
pip install markitdown
- 转换命令
markitdown 文档.docx -o 文档.md
二、方案选型对照表
| 使用场景 | 推荐工具 | 核心优势 |
|---|---|---|
| 少量纯文字Word,无内嵌图片 | Typora自带导入 | 可视化编辑,操作简单 |
| 带截图/图表、批量文档、需要完整图片 | Pandoc命令行 | 自动提取图片,格式还原完整,支持脚本批量 |
| 已用Typora导入完成,图片缺失修复 | 解压docx手动补图 | 无需重新转换,快速补救 |
| 临时1份文档、不想安装软件 | 在线word2md工具 | 零配置即用 |
| 程序自动化批量处理 | MarkItDown | 可嵌入Python代码流程 |
三、常见踩坑与注意事项
- 路径包含中文、空格会导致 Pandoc 图片提取失败,统一使用英文路径
- Word 图表、SVG 矢量图可能无法正常提取,建议在Word内另存为PNG再转换
- 转换完成后,
.md文件与图片文件夹必须放在同一目录,不可拆分移动 - 老旧
.doc二进制文件不兼容所有转换工具,务必另存为.docx