✍️ Python 批量设置 Word 文档多级字体样式(标题/正文/名称/小节)
本文展示如何利用 python-docx
为大量 Word 文档自动设置符合规范的字体格式——
-
标题使用方正小标宋
-
姓名、部门、日期使用楷体
-
正文使用仿宋
-
一级标题黑体,二级标题楷体
-
支持批量处理整个文件夹中的 Word,输出到新的目标文件夹
适合公文排版、规范报告、美化文件等日常办公场景。
🎯 核心思路
-
定义专属字体样式函数:
F_title
,F_name_dept
,F_main
,F_title1
,F_title2
-
批量读取指定目录下所有
.docx
文件 -
逐文档处理:遍历段落,对不同层级结构段落应用不同样式
-
按原文件名保存至目标目录
已处理文件
🛠️ 字体样式函数定义
from docx.shared import Pt
from docx.oxml.ns import qndef F_title(run):run.font.size = Pt(22)run.bold = Truerun.font.name = "方正小标宋_GBK"run._element.rPr.rFonts.set(qn("w:eastAsia"), "方正小标宋_GBK")def F_name_dept(run):run.font.size = Pt(17)run.bold = Falserun.font.name = "楷体"run._element.rPr.rFonts.set(qn("w:eastAsia"), "楷体")def F_main(run):run.font.size = Pt(17)run.bold = Falserun.font.name = "仿宋"run._element.rPr.rFonts.set(qn("w:eastAsia"), "仿宋")def F_title1(run):run.font.size = Pt(17)run.bold = Falserun.font.name = "黑体"run._element.rPr.rFonts.set(qn("w:eastAsia"), "黑体")def F_title2(run):run.font.size = Pt(17)run.bold = Truerun.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。
🔄 批量处理多文件逻辑
import docx, ospath = '待处理文件'
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 文档排版工具,只需轻松拖入文档即可一键套用统一字体样式。不论是公司报告,还是多份会议纪要,都可以实现美观规范的自动排版。如果需要进一步定制样式或元素,欢迎继续提需求!