在数字化办公场景中,Word文档作为主流文件格式承载着大量商务文书与学术资料。传统手动调整字体格式的操作模式存在显著局限性:当面对批量文档处理、动态内容生成或企业级模板维护时,逐一手工修改不仅效率低下,更难以保障格式规范的统一性。通过Python实现文档字体的程序化控制,能够有效构建自动化处理流程,在确保排版精准度的同时,显著提升文档批量化操作能力。本文将介绍如何使用Python修改Word文档段落或文本的字体。
- 修改Word文档段落字体
- 查找Word文档文本并修改字体
本文所使用的方法需要用到免费的Free Spire.Doc for Python,PyPI:pip install spire.doc.free
。
修改Word文档段落字体
修改Word文档指定段落的文本可以通过新建Word文档段落样式,并将其应用到指定段落来实现。以下是操作步骤:
- 创建
Document
对象并使用LoadFromFile
读取Word文档。 - 使用
Sections.get_Item(0)
获取节,再用Paragraphs.get_Item(2)
获取节中的段落。 - 使用
ParagraphStyle
类创建段落样式,设置FontName
、Bold
、Italic
和TextColor
属性。 - 使用
Styles.Add
添加段落样式到文档,并用ApplyStyle
将其应用于获取的段落。 - 使用
SaveToFile
保存Word文档。 - 释放资源。
代码示例
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
属性修改其字体样式。以下是操作步骤:
- 创建
Document
对象并使用LoadFromFile
读取Word文档。 - 使用
Document.FindAllString()
方法查找Word文档中的指定文本。 - 遍历查找到的列表,使用
TextSelection.GetAsOneRange()
方法将其获取为文本区域。 - 通过
CharacterFormat
属性修改字体样式。 - 使用
SaveToFile
保存Word文档。 - 释放资源。
代码示例
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()
结果
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。