本文展示如何利用 python-docx
为大量 Word 文档自动设置符合规范的字体格式------
-
标题使用方正小标宋
-
姓名、部门、日期使用楷体
-
正文使用仿宋
-
一级标题黑体,二级标题楷体
-
支持批量处理整个文件夹中的 Word,输出到新的目标文件夹
适合公文排版、规范报告、美化文件等日常办公场景。
🎯 核心思路
-
定义专属字体样式函数:
F_title
,F_name_dept
,F_main
,F_title1
,F_title2
-
批量读取指定目录下所有
.docx
文件 -
逐文档处理:遍历段落,对不同层级结构段落应用不同样式
-
按原文件名保存至目标目录
已处理文件
🛠️ 字体样式函数定义
python
from docx.shared import Pt
from docx.oxml.ns import qn
def F_title(run):
run.font.size = Pt(22)
run.bold = True
run.font.name = "方正小标宋_GBK"
run._element.rPr.rFonts.set(qn("w:eastAsia"), "方正小标宋_GBK")
def F_name_dept(run):
run.font.size = Pt(17)
run.bold = False
run.font.name = "楷体"
run._element.rPr.rFonts.set(qn("w:eastAsia"), "楷体")
def F_main(run):
run.font.size = Pt(17)
run.bold = False
run.font.name = "仿宋"
run._element.rPr.rFonts.set(qn("w:eastAsia"), "仿宋")
def F_title1(run):
run.font.size = Pt(17)
run.bold = False
run.font.name = "黑体"
run._element.rPr.rFonts.set(qn("w:eastAsia"), "黑体")
def F_title2(run):
run.font.size = Pt(17)
run.bold = True
run.font.name = "楷体"
run._element.rPr.rFonts.set(qn("w:eastAsia"), "楷体")
-
使用
.font.name
设置英文字体,配合qn('w:eastAsia')
设置中文字体 RedditInterSystems开发者社区+5python-docx+5阿里云资讯网+5GitHub; -
字体大小通过
Pt()
设置,适用于 Word 排版需求 python-docx+1Reddit+1。
🔄 批量处理多文件逻辑
python
import docx, os
path = '待处理文件'
files = [os.path.join(path, f) for f in os.listdir(path)]
for file in files:
doc = docx.Document(file)
# 第一段为总标题
for run in doc.paragraphs[0].runs:
F_title(run)
# 第二、三段为姓名、部门、日期
for para in doc.paragraphs[1:3]:
for run in para.runs:
F_name_dept(run)
title1_marks = ["一、","二、","三、","四、"]
title2_marks = ["1、","2、","3、","4、"]
for para in doc.paragraphs[3:]:
if any(mark in para.text for mark in title1_marks):
for run in para.runs:
F_title1(run)
elif any(mark in para.text for mark in title2_marks):
for run in para.runs:
F_title2(run)
else:
for run in para.runs:
F_main(run)
out_path = os.path.join('已处理文件', os.path.basename(file))
doc.save(out_path)
-
第一段为主标题,第二三段为姓名部门,再往下根据"标记符"区分不同层级段落;
-
支持格式自动套用,不用手动修改每段文字。
🖼️ 结果展示区

✅ 注意事项 & 技术说明
-
中文字体需与 Windows 安装字体保持一致名称,否则设置无效 ;
-
需导入
qn
方法将中文字体写入w:eastAsia
标签,保证兼容 Word 中文渲染; -
Pt()
方法设定磅值,根据文档规范可自定义字号; -
建议先备份原文件,再保存结果到
已处理文件
文件夹。
🧭 拓展建议
-
✅ 动态识别更多层级标题,例如"(一)、(二)...";
-
✅ 支持文档末尾"参考文献""附件"自动添加页眉页脚信息;
-
✅ 结合之前表格样式处理脚本,自动格式 Word 中表格单元格;
-
✅ GUI 界面支持字体选择及批处理路径一键操作。
更多实用案例,代码,素材如下:

自取链接:https://pan.quark.cn/s/a46f30accea2
📝 总结
你现在拥有了一个强大的批量 Word 文档排版工具,只需轻松拖入文档即可一键套用统一字体样式。不论是公司报告,还是多份会议纪要,都可以实现美观规范的自动排版。如果需要进一步定制样式或元素,欢迎继续提需求!