Python操作Word文档:轻松修改字体样式

Python修改Word字体:从入门到实践

在日常办公中,我们经常需要处理Word文档,尤其是批量修改字体样式。Python的python-docx库提供了强大的功能,让我们能够以编程方式控制Word文档中的字体属性。本文将带你一步步掌握如何使用Python修改Word字体。

一、准备工作:安装python-docx

首先需要安装python-docx库:

pip install python-docx

二、打开Word文档

使用Document类打开一个已有的Word文档(.docx格式):

from docx import Document
doc = Document('example.docx')

若要新建文档,只需调用Document()即可。

三、理解Word文档结构

在python-docx中,文档内容主要由段落(Paragraph)和运行块(Run)组成。每个段落包含多个运行块,运行块是具有相同格式的文本片段。修改字体需要作用于运行块级别。

四、修改字体属性

遍历文档中的所有段落,再遍历其中的运行块,设置字体的各种属性:

for paragraph in doc.paragraphs:
    for run in paragraph.runs:
        run.font.name = 'Arial'            # 字体名称
        run.font.size = Pt(12)             # 字体大小(需导入Pt)
        run.font.bold = True               # 加粗
        run.font.italic = False            # 斜体
        run.font.color.rgb = RGBColor(0,0,255)  # 字体颜色(需导入RGBColor)

注意:Pt和RGBColor需要从docx.shared导入:

from docx.shared import Pt, RGBColor

五、完整示例:将文档所有字体改为微软雅黑、12号、蓝色

from docx import Document
from docx.shared import Pt, RGBColor

doc = Document('example.docx')
for paragraph in doc.paragraphs:
    for run in paragraph.runs:
        run.font.name = '微软雅黑'
        run.font.size = Pt(12)
        run.font.bold = False
        run.font.italic = False
        run.font.color.rgb = RGBColor(0, 102, 204)
doc.save('modified.docx')

六、注意事项

  • 字体名称兼容性:在Word中,中文字体名称(如“微软雅黑”)在不同系统上可能无效,建议同时设置run.font.name和run.font.element.rPr.rFonts.set(qn('w:eastAsia'), '字体名')以确保中文字体生效。
  • 域代码中的文本:某些特殊段落(如标题、页眉页脚、表格中的文本)可能无法通过paragraph.runs直接访问,需要额外处理。
  • 保存文档:修改后务必调用doc.save('新文件名.docx'),否则更改不会写入文件。

七、进阶:仅修改特定样式或范围

您可以通过判断段落样式或文本内容来选择性修改:

for paragraph in doc.paragraphs:
    if paragraph.style.name.startswith('Heading'):
        for run in paragraph.runs:
            run.font.bold = True

八、结语

使用Python自动化修改Word字体可以大幅提高工作效率,特别适用于批量处理文档格式的场景。通过灵活运用python-docx库,您还能实现更复杂的操作,如字体替换、样式统一等。希望本文能帮助您快速上手!