✍️ Python 批量设置 Word 文档多级字体样式(标题/正文/名称/小节)

本文展示如何利用 python-docx 为大量 Word 文档自动设置符合规范的字体格式------

  • 标题使用方正小标宋

  • 姓名、部门、日期使用楷体

  • 正文使用仿宋

  • 一级标题黑体,二级标题楷体

  • 支持批量处理整个文件夹中的 Word,输出到新的目标文件夹

适合公文排版、规范报告、美化文件等日常办公场景。


🎯 核心思路

  1. 定义专属字体样式函数:F_title, F_name_dept, F_main, F_title1, F_title2

  2. 批量读取指定目录下所有 .docx 文件

  3. 逐文档处理:遍历段落,对不同层级结构段落应用不同样式

  4. 按原文件名保存至目标目录 已处理文件


🛠️ 字体样式函数定义

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"), "楷体")

🔄 批量处理多文件逻辑

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 文档排版工具,只需轻松拖入文档即可一键套用统一字体样式。不论是公司报告,还是多份会议纪要,都可以实现美观规范的自动排版。如果需要进一步定制样式或元素,欢迎继续提需求!

相关推荐
171320330计算机毕设编程3 小时前
计算机毕业设计 基于Hadoop的新能源汽车发展前景分析 LW PPT
java·大数据·hadoop·python·算法·随机森林·线性回归
工业传感笔记3 小时前
光电传感器选型指南:进口品牌与国产方案的三梯队差距与判断方法
其他·自动化
haluhalu.3 小时前
深入理解 AI Agent(1.2):Harness 工程——模型之外的竞争力
前端·数据结构·人工智能·python·langchain·个人开发
东莞市云毅网络有限公司4 小时前
把网页表格与列表还原成结构化条目:抽取与对账实现
python·文本处理·数据抽取
夜瞬4 小时前
从零微调 Qwen3-8B:基于 LoRA 与 LLaMA-Factory 打造专属 AI 编程助教
人工智能·python·llama
障碍的枫子4 小时前
我的第一个Agent
开发语言·python·langchain
打工仔折腾 AI4 小时前
260+异构同步链路实战:如何用语义化自动翻译破解CDC DDL同步痛点
人工智能·后端·python·自然语言处理·性能优化·langchain·机器翻译
曲径海盗4 小时前
【Python 学习第 33 天】条件判断 if/else
python·学习笔记·编程入门
把我格子衫拿来5 小时前
鼠标点到哪里才算选中?Qt 与 VTK 的拾取坐标、DPI 与体素定位
python·qt·vtk·坐标变换·三维交互
优选资讯5 小时前
Excel 批量打印标签的完整流程
excel