三步完成 Markdown 到 Word/PDF 的转换:Python 教程

Markdown 作为一种标记性文本,具有易编辑、轻量化和高兼容性等特点,被广泛应用于技术文档、博客笔记和项目说明中。但在一些场景下,我们往往需要将它转换为 Word 或 PDF 这种更加正式、便于分享或打印的文档格式,比如撰写交付文档、提交报告、发送给客户阅读等。

如果你想快速完成格式转换,又不想花时间手动调整排版,那么使用代码就是一个省时又可靠的选择。在今天的教程中,我们就来看看怎样用几行简单的 Python 代码将 Markdown 转换为 Word 和 PDF,帮助你高效、轻松地完成整个流程。

需要注意的是本文使用的 Python 库是 Free Spire.Doc for Python,这是 Spire.Doc 的免费版,具有和商业版同样的功能,但更加适合小型项目或测试。你可以通过 pip install Spire.Doc.Free 来安装它,或者导航到官网,下载安装包进行自定义安装。

  • [Markdown 转 Word](#Markdown 转 Word)
  • [Markdown 转 PDF](#Markdown 转 PDF)
    • [转 PDF 时设置页面效果](#转 PDF 时设置页面效果)
  • 结论

Python 三步转换 Markdown 为 Word 文档

相比 Markdown 文档,Word 的可读性和在正式场合中的认可度都更高,因此许多报告或需要对外展示的内容通常都以 Word 格式呈现。然而 Markdown 本身并不能直接保存为 Word 文件。好在我们可以借助 Python 和 Free Spire.Doc 来轻松完成格式转换。

整个流程非常简单:先创建一个 Document 对象,接着加载需要转换的 Markdown 文件,最后通过 Document.SaveToFile() 方法将内容导出为 Word 文档,你可以根据需求选择保存为 .doc 或 .docx 格式。下面是完整的代码示例。

代码示例:将 Markdown 文档转换为 .doc 和 .docx 后缀的 Word 文档

python 复制代码
from spire.doc import *
from spire.doc.common import *

# 创建 Document 类的对象
document = Document()
# 加载 Markdown 文件
document.LoadFromFile("E:/Administrator/Python1/input/全球旅游.md")

# 将 Markdown 文件保存为 Word DOCX 文件
document.SaveToFile("E:/Administrator/Python1/output/Md转Docx.docx", FileFormat.Docx)
# 将 Markdown 文件保存为 Word DOC 文件
document.SaveToFile("E:/Administrator/Python1/output/Md转Doc.doc", FileFormat.Doc)
document.Close()

下方是原始 Markdown 文档与输出文档的对比图:

如果你希望进行批量的转换,建议先将 Markdown 文档放到同一个文件夹中,方便进行遍历,下面是你可以参考的代码:

python 复制代码
from spire.doc import *
from spire.doc.common import *

# 要批量转换的 Markdown 文件名称
file_names = [
    "全球旅游.md",
    "欧洲景点.md",
    "亚洲推荐景点.md"
]

# 指定输入与输出目录
input_dir = "E:/Administrator/Python1/input/"
output_dir = "E:/Administrator/Python1/output/"

for name in file_names:
    # 创建 Document 对象
    document = Document()
    
    # 加载 Markdown 文件
    document.LoadFromFile(input_dir + name)
    
    # 输出文件名(将 .md 替换为 .docx)
    output_name = name.replace(".md", ".docx")
    
    # 保存为 Word DOCX
    document.SaveToFile(output_dir + output_name, FileFormat.Docx)
    
    # 关闭文档
    document.Close()

Python 快速将 Markdown 转换为 PDF 文档

在许多日常工作场景中,PDF 往往比 Markdown 更适合作为最终交付格式,无论是用于分享、展示,还是打印都更加稳定可靠。借助 Free Spire.Doc,你同样可以轻松完成 Markdown 转 PDF 的操作。整体步骤并不复杂:创建一个 Document 对象,将 Markdown 文件加载进去,最后通过 Document.SaveToFile() 导出为 PDF 即可。下面的示例代码将展示如何快速完成这一转换过程。

代码示例:将 Markdown 文档转换为 PDF 文档

python 复制代码
from spire.doc import *
from spire.doc.common import *

# 创建 Document 类的对象
document = Document()
# 加载 Markdown 文件
document.LoadFromFile("E:/Administrator/Python1/input/全球旅游.md")

# 将文件保存为 PDF 文档
document.SaveToFile("E:/Administrator/Python1/output/Markdown转PDF.pdf", FileFormat.PDF)

document.Close()

在转换时进行 PDF 页面设置

除了将 Markdown 直接转换为 PDF 之外,Free Spire.Doc 还可以在转换过程中对 PDF 的页面进行灵活设置,包括页面大小、方向以及页边距等。通过在生成阶段就完成这些参数的配置,你可以省去后续在其他软件中进行二次调整的步骤,大幅提升工作效率。这样,转换后的 PDF 能够更符合你的排版需求,也更便于直接使用或分享。

代码示例:Markdown 转 PDF 并设置页面大小、方向和页边距

python 复制代码
from spire.doc import *
from spire.doc.common import *

# 创建一个 Document 类的实例
doc = Document()
# 加载一个 Word 文档
doc.LoadFromFile("E:/Administrator/Python1/input/全球旅游.md", FileFormat.Markdown)

# 获取默认的节(section)
section = doc.Sections.get_Item(0)

# 获取页面设置
pageSetup = section.PageSetup

# 自定义页面设置
pageSetup.PageSize = PageSize.A4()
pageSetup.Orientation = PageOrientation.Landscape
pageSetup.Margins.All = 50

# 将 Markdown 文档保存为 PDF 文件
doc.SaveToFile("E:/Administrator/Python1/output/Markdown转PDF自定义页面.pdf", FileFormat.PDF)

doc.Dispose()

结论

本篇教程示范了如何使用 Python 将 Markdown 高效转换为 Word 和 PDF,并进一步拓展到批量处理和 PDF 页面设置等常见需求。无论是文档传输、正式展示,还是日常存档,这些功能都能显著提升你的工作效率。借助 Free Spire.Doc,你不仅可以轻松完成格式转换,还能保证文档质量稳定、流程便捷、安全可靠。

感兴趣的话不妨安装试试看,或进入主页浏览更多文档处理教程!

相关推荐
TTGGGFF1 小时前
Supertonic 部署与使用全流程保姆级指南(附已部署镜像)
开发语言·python
love530love2 小时前
升级到 ComfyUI Desktop v0.7.0 版本后启动日志报 KeyError: ‘tensorrt‘ 错误解决方案
开发语言·windows·python·pycharm·virtualenv·comfyui·comfyui desktop
落羽凉笙8 小时前
Python学习笔记(3)|数据类型、变量与运算符:夯实基础,从入门到避坑(附图解+代码)
笔记·python·学习
Quintus五等升8 小时前
深度学习①|线性回归的实现
人工智能·python·深度学习·学习·机器学习·回归·线性回归
天远Date Lab8 小时前
Python实战:对接天远数据手机号码归属地API,实现精准用户分群与本地化运营
大数据·开发语言·python
哈里谢顿8 小时前
Python异常链:谁才是罪魁祸首?一探"The above exception"的时间顺序
python
哈里谢顿9 小时前
验证 list() 会调用 `__len__` 方法的深度解析
python·django
vibag9 小时前
构建智能体与工具调用
python·语言模型·大模型·langgraph
小途软件9 小时前
高校宿舍访客预约管理平台开发
java·人工智能·pytorch·python·深度学习·语言模型
-dcr10 小时前
49.python自动化
运维·python·自动化