在数字化办公场景中,Word文档作为主流文件格式承载着大量商务文书与学术资料。传统手动调整字体格式的操作模式存在显著局限性:当面对批量文档处理、动态内容生成或企业级模板维护时,逐一手工修改不仅效率低下,更难以保障格式规范的统一性。通过Python实现文档字体的程序化控制,能够有效构建自动化处理流程,在确保排版精准度的同时,显著提升文档批量化操作能力。本文将介绍如何使用Python修改Word文档段落或文本的字体

  • 修改Word文档段落字体
  • 查找Word文档文本并修改字体

本文所使用的方法需要用到免费的Free Spire.Doc for Python,PyPI:pip install spire.doc.free

修改Word文档段落字体

修改Word文档指定段落的文本可以通过新建Word文档段落样式,并将其应用到指定段落来实现。以下是操作步骤:

  1. 创建 Document 对象并使用 LoadFromFile 读取Word文档。
  2. 使用 Sections.get_Item(0) 获取节,再用 Paragraphs.get_Item(2) 获取节中的段落。
  3. 使用 ParagraphStyle 类创建段落样式,设置 FontNameBoldItalicTextColor属性。
  4. 使用 Styles.Add 添加段落样式到文档,并用 ApplyStyle 将其应用于获取的段落。
  5. 使用 SaveToFile 保存Word文档。
  6. 释放资源。

代码示例

from spire.doc import Document, ParagraphStyle, Color

# 创建 Document 实例
doc = Document()

# 读取 Word 文档
doc.LoadFromFile('Sample.docx')

# 获取第一个节
section = doc.Sections.get_Item(0)

# 获取特定的段落
paragraph = section.Paragraphs.get_Item(2)

# 创建段落样式
style = ParagraphStyle(doc)
style.Name = 'ParaFont'
style.CharacterFormat.FontName = 'Arial'
style.CharacterFormat.Bold = True
style.CharacterFormat.Italic = True
style.CharacterFormat.TextColor = Color.get_Red()
doc.Styles.Add(style)

# 将样式应用于段落
paragraph.ApplyStyle(style.Name)

# 保存结果文档
doc.SaveToFile('output/ChangeParaFont.docx')
doc.Dispose()

结果

查找Word文档文本并修改字体

我们可以使用Document.FindAllString()方法查找Word文档中的指定文本,然后使用遍历查找到的列表,使用TextSelection.GetAsOneRange()方法将其获取为文本区域,并通过其下的CharacterFormat属性修改其字体样式。以下是操作步骤:

  1. 创建 Document 对象并使用 LoadFromFile 读取Word文档。
  2. 使用Document.FindAllString()方法查找Word文档中的指定文本。
  3. 遍历查找到的列表,使用TextSelection.GetAsOneRange()方法将其获取为文本区域。
  4. 通过CharacterFormat属性修改字体样式。
  5. 使用 SaveToFile 保存Word文档。
  6. 释放资源。

代码示例

from spire.doc import Document, Color

# 创建 Document 实例
doc = Document()

# 读取 Word 文档
doc.LoadFromFile('Sample.docx')

# 查找需要更改字体的文本
textSelections = doc.FindAllString('transformed workplace dynamics', False, True)

# 修改文本的字体样式
for selection in textSelections:
    selection.GetAsOneRange().CharacterFormat.TextColor = Color.get_Red()
    selection.GetAsOneRange().CharacterFormat.Bold = True

# 保存结果文档
doc.SaveToFile('output/ChangeTextFont.docx')
doc.Dispose()

结果


大丸子
72 声望7 粉丝