news 2026/2/16 7:15:52

word2markdown:一款优秀的Word转Markdown工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
word2markdown:一款优秀的Word转Markdown工具

1. 概述

word2markdown是一款优秀的 Word 转 Markdown 工具。随着人工智能技术的普及,将 Word 文档转换为 Markdown 格式供 AI 分析已成为常见需求。然而,现有工具(如 pandoc 等)在转换效果上往往不尽如人意。

为此,作者开发了这款基于 Python 的 Word 转 Markdown 工具,它能够智能识别 Word 文档中的各种格式元素(标题、加粗、列表、代码块、表格、图片、超链接等),并准确转换为对应的 Markdown 语法。经过实际测试,本工具在转换准确性和格式保持方面表现优异。

项目网址:word2markdown

如果觉得不错记得给项目标个星哦!

2. 运行环境

  • python 3.11
  • python_docx==0.8.11

3. 参考资料

  • python-docx官方文档
  • Python顺序读取word文档中的文本与表格
  • kmrambo/Python-docx-Reading-paragraphs-tables-and-images-in-document-order-
  • Python使用标准库zipfile+re提取docx文档中超链接文本和链接地址
  • Python如何提取docx中的超链接
  • 第105天:Python操作Word
  • python-docx处理word文档
  • 使用python-docx在MSWord中添加超链接
  • python-docx设置表格填充底色以及切分单元格(仅使用python-docx)

4. 转换原理

  • 根据 Word 标题判断是否为标题
  • 根据 Word 文字是否加粗进行加粗
  • 根据 Word “项目符号/编号” 判断是否为列表
  • 根据 Word 文字是否倾斜判断是否为行代码
  • 根据 Word 1x1 的表格判断是否为块代码
  • Word 中非 1x1 的表格判定为普通表格,可以转换为 Markdown 表格
  • 可以处理 Word 文档中的图片
  • 可以处理 Word 文档中的超链接
  • 只能处理 docx 文档,不能处理 doc 文档

5. Word 文档格式要求

  • 行代码用倾斜字体表示
  • 块代码必须放在 1x1 的表格中
  • 1x1 的表格判定为块代码,其它大小的表格判定为普通表格
  • 图片必须是单独的段落
  • “项目符号/编号” 必须用样式集中的 “List Paragraph” 标识,否则会识别为正文文本

6. 使用工具

test_file/input/linux-manual.docx是一篇用于测试的 Word 文档。

test_file/output/linux-manual.md是转换后预期得到的 Markdown 文档。

test_file/output/linux-manual.imgs是转换后从 Word 中提取的图片的存放路径。

pip 安装依赖:

python3.11 -m pipinstall-r requirements.txt

运行转换命令,测试转换效果:

python3.11 main.py test_file/input/linux-manual.docx

转换生成的 Markdown 文档和图片会存放在test_file/input/目录下。

使用你转换生成的 Markdown 文档和预期得到的 Markdown 文档对比,二者除了图片链接外,内容应该是一样的。

因为转换工具每次从 Word 中提取图片时,会动态生成 UUID 作为图片名字,因此每次运行得到的图片名字是不一样的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/12 5:57:25

PDF压缩

winnzip项目pdf压缩部分/*** 压缩PDF文件* param inputFile 输入PDF文件路径* param outputFile 输出PDF文件路径* param compressionLevel 压缩等级: 0小尺寸, 1中等尺寸, 2大尺寸* param lossless 是否无损压缩* return 压缩是否成功*/使用Ghostscript命令行方式进行pdf压缩&…

作者头像 李华
网站建设 2026/2/11 14:05:19

国产自主芯片加持!光润通FF-904E-V3.0千兆四光口网卡深度解析与应用场景

在企业级网络、数据中心建设中,网卡作为数据传输的核心枢纽,其性能、稳定性与自主可控性直接决定了整个网络架构的可靠性与安全性。近年来,国产网络硬件崛起,越来越多的企业开始选择自主研发的网络设备。今天就为大家深度解析一款…

作者头像 李华
网站建设 2026/2/11 14:05:17

【开题答辩过程】以《基于python的气象灾害数据分析与可视化系统》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看

个人简介慕婉学姐精通Java、PHP、微信小程序、Python、Golang和安卓开发等语言,擅长开发大数据、深度学习、网站、小程序、安卓应用和算法项目。平时从事项目定制开发、代码讲解、答辩教学和文档编写,也掌握一些降重技巧。感谢大家的持续关注&#xff01…

作者头像 李华
网站建设 2026/2/11 14:05:15

NestJs-拦截器

NestJS 拦截器概述拦截器(Interceptor)是 NestJS 的核心功能之一,用于在方法执行前后添加额外的逻辑。拦截器基于面向切面编程(AOP)思想,常用于日志记录、性能监控、响应格式统一等场景。拦截器的核心功能 …

作者头像 李华
网站建设 2026/2/11 14:05:12

谓的“完美本地环境”,是不是开发者体验(DX)最大的谎言?

我扔掉了本地的 Docker 和 VSCode,开发效率反而提升了10倍“在我电脑上明明是好的”,这句话我曾说过无数次,也听过无数次。每次新项目启动或新同事入职,我们总要浪费大量时间在配置开发环境上,过程痛苦且极易出错。我曾…

作者头像 李华
网站建设 2026/2/11 7:24:52

监督学习非监督学习的区别

监督学习&非监督学习监督学习(Supervised Learning)非监督学习(Unsupervised Learning)区分——是否有“标签(Label)”什么是「标签」?监督学习(Supervised Learning&#xff09…

作者头像 李华