当前位置: 首页 > news >正文

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

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

  • 标题使用方正小标宋

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

  • 正文使用仿宋

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

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

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


🎯 核心思路

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

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

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

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


🛠️ 字体样式函数定义

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

 

 

 

http://www.dtcms.com/a/270544.html

相关文章:

  • PHP 基于模板动态生成 Word 文档:图片 + 表格数据填充全方案(PHPOffice 实战)
  • 使用python 将多个docx文件合并为一个word
  • 【Unity】MiniGame编辑器小游戏(十)连连看【Link】
  • 实时地震分析:AI+Python如何帮我们提前感知大地的怒吼?
  • 使用 Docker 搭建 Go Web 应用开发环境——AI教你学Docker
  • NO.1数据结构绪论|数据结构|逻辑结构|物理结构|算法|算法的度量
  • 从救火到赋能:运维的职责演进与云原生时代的未来图景
  • 聚铭安全管家平台2.0实战解码 | 安服篇(二):无人值守自动化封禁
  • 【Unity】MiniGame编辑器小游戏(十一)消消乐【Crush】
  • 本地Qwen中医问诊小程序系统开发
  • 【目标检测之Ultralytics预测框颜色修改】
  • OpenCV哈希算法------Marr-Hildreth 边缘检测哈希算法
  • 基于DeepSeek构建的openGauss AI智能优化助手:数据库性能提升新利器
  • 微软 Bluetooth LE Explorer 实用工具的详细使用分析
  • 【DOCKER】-3 数据持久化
  • OpenCV图像增强秘籍:高通滤波与特效艺术
  • Web 前端框架选型:React、Vue 和 Angular 的对比与实践
  • PiscTrace深蹲计数功能实现:基于 YOLO-Pose 和人体关键点分析
  • 【python处理excel】B列单元格中的内容都是回车换行的,把这些信息拆成多行多列,并且把A列对应的信息带过去。
  • A模块 系统与网络安全 第四门课 弹性交换网络-2
  • C#正则表达式全面详解:从基础到高级应用
  • 跨部门协作难以对齐项目进度,如何促进协同
  • Rust #[] 语法
  • PHP语法高级篇(一):日期时间处理和包含文件
  • 【系统与工具】Linux——Linux简介、安装、简单使用
  • 详解Kafka重平衡机制详解
  • MySQL8.0基于GTID的组复制分布式集群的环境部署
  • mysql互为主从失效,重新同步
  • 超越公有云:在裸金属服务器上构建低成本、高性能的静态资源服务
  • 创客匠人:创始人 IP 打造中 “放下身段” 的深层逻辑