動態

詳情 返回 返回

用Python修改Word文檔字體 - 動態 詳情

在數字化辦公場景中,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()

結果

Add a new 評論

Some HTML is okay.