デジタル化が進むビジネス環境において、Word文書は多くのビジネス文書や学術資料を扱う主要なファイル形式です。しかし、手動でフォントを調整する作業は、複数の文書を一括処理したり、動的にコンテンツを生成したりする場面では非効率的です。Pythonを使用してWord文書のフォントをプログラムで制御することで、統一されたフォーマットの適用や大量の文書の効率的な処理が可能になります。本記事では、Pythonを使用してWord文書の段落や特定のテキストのフォントを変更する方法について解説します。
- Word文書の段落のフォントを変更する
- Word文書内の特定のテキストを検索してフォントを変更する
本記事で使用する方法には、無料のFree Spire.Doc for Pythonライブラリを使用します。PyPIよりインストールできます:
pip install spire.doc.free
Word文書の段落のフォントを変更する
特定の段落のフォントを変更するには、新しい段落スタイルを作成し、それを指定の段落に適用します。以下の手順で実装できます。
手順
-
Document
オブジェクトを作成し、LoadFromFile
メソッドでWord文書を読み込む。 -
Sections.get_Item(0)
メソッドで最初のセクションを取得し、Paragraphs.get_Item(2)
で対象の段落を取得する。 -
ParagraphStyle
クラスを使用して新しい段落スタイルを作成し、FontName
、Bold
、Italic
、TextColor
プロパティを設定する。 -
Styles.Add
メソッドで作成したスタイルを文書に追加し、ApplyStyle
メソッドで対象の段落に適用する。 -
SaveToFile
メソッドでWord文書を保存する。 -
Dispose
メソッドでリソースを解放する。
コード例
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 = 'CustomStyle'
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)
# Word文書を保存
doc.SaveToFile('output/ChangedParagraphFont.docx')
doc.Dispose()
Word文書内の特定のテキストを検索してフォントを変更する
Document.FindAllString()
メソッドを使用すると、文書内の特定のテキストを検索できます。検索結果の各テキストに対して CharacterFormat
プロパティを使用し、フォントのスタイルを変更できます。
手順
-
Document
オブジェクトを作成し、LoadFromFile
メソッドでWord文書を読み込む。 -
FindAllString
メソッドで指定したテキストを検索する。 - 検索結果のリストをループ処理し、
TextSelection.GetAsOneRange()
メソッドで対象テキストを取得する。 -
CharacterFormat
プロパティを使用してフォントスタイルを変更する。 -
SaveToFile
メソッドでWord文書を保存する。 -
Dispose
メソッドでリソースを解放する。
コード例
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:
textRange = selection.GetAsOneRange()
textRange.CharacterFormat.TextColor = Color.get_Red()
textRange.CharacterFormat.Bold = True
# Word文書を保存
doc.SaveToFile('output/ChangedTextFont.docx')
doc.Dispose()
以上の方法を活用することで、Word文書のフォント設定を柔軟にカスタマイズし、一括でフォーマットを適用できます。