企業の業務において、プロフェッショナルな文書のレイアウトは、報告書、企画書、プレゼン資料などで非常に重要です。ヘッダーやフッターには、タイトル、会社名、日付情報を表示できるだけでなく、企業のロゴを挿入することで、文書の統一感と視認性を向上させることができます。手動で操作するとミスが起きやすく、効率も低下しますが、Python を活用することで Word 文書の自動生成が可能です。本記事では、ヘッダー、フッター、画像を含む Word 文書の作成方法を紹介し、実際の業務シナリオに沿った標準化レポートテンプレートの構築方法を解説します。
本記事のサンプルは Free Spire.Doc for Python を使用しています。
1. 環境準備とインストール
使用する前に、Spire.Doc for Python をインストールします:
pip install spire.doc.free
インストール後、Python でライブラリをインポートし、Word 文書の作成や内容・レイアウトの操作が可能になります。
2. 文書の作成とページ分割
まず、Word 文書オブジェクトを作成し、セクションやページ分割を追加します:
from spire.doc import Document, BreakType
# 文書を作成
document = Document()
section = document.AddSection()
# ページ分割を追加
section.AddParagraph().AppendBreak(BreakType.PageBreak)
技術ポイントと主要メソッド:
-
Documentは Word 文書全体を表すオブジェクトです。 -
AddSection()は新しいセクションを作成し、分節やページ管理を行います。 -
AppendBreak(BreakType.PageBreak)でページ区切りを挿入し、後続のレイアウトを整理します。
3. ヘッダーにテキストを挿入
ヘッダーには通常、レポートタイトル、会社名、日付などを配置します。複数の段落で異なる内容をレイアウトできます:
from spire.doc import HorizontalAlignment
header = section.HeadersFooters.Header
# 左側:レポートタイトル
header_para1 = header.AddParagraph()
header_range1 = header_para1.AppendText("月次売上報告")
header_range1.CharacterFormat.FontSize = 12
header_range1.CharacterFormat.FontName = "Yu Gothic UI"
header_para1.Format.HorizontalAlignment = HorizontalAlignment.Left
# 右側:会社名
header_para2 = header.AddParagraph()
header_para2.AppendText("株式会社サンプル").CharacterFormat.FontSize = 12
header_para2.Format.HorizontalAlignment = HorizontalAlignment.Right
技術ポイントと主要メソッド:
-
HeadersFooters.Headerでヘッダーオブジェクトを取得。 -
AddParagraph()で段落を追加。 -
AppendText(text)で段落にテキストを追加。 -
Format.HorizontalAlignmentで段落の水平位置を設定。 -
CharacterFormat.FontSizeで文字サイズを設定。
4. ヘッダーに画像を挿入
企業ロゴやマークはヘッダーに配置されることが多く、次の方法で挿入可能です:
from spire.doc import ShapeHorizontalAlignment, TextWrappingStyle
image = header_para1.AppendPicture("Logo.jpg") # 画像ファイルパス
image.Width = 40
image.Height = 40
image.TextWrappingStyle = TextWrappingStyle.InFrontOfText
image.HorizontalAlignment = ShapeHorizontalAlignment.Center
技術ポイントと主要メソッド:
-
AppendPicture(path)でローカル画像を挿入。 -
DocPicture.HorizontalAlignmentで段落内での画像位置を設定可能。 - 複数段落と組み合わせて、テキストと画像を柔軟に配置できます。
5. フッターとページ番号の挿入
フッターにはページ番号や総ページ数を表示すると、文書の統一感が増します:
from spire.doc import FieldType
footer = section.HeadersFooters.Footer
footer_para = footer.AddParagraph()
footer_para.Format.HorizontalAlignment = HorizontalAlignment.Center
footer_para.AppendText("第 ").CharacterFormat.FontSize = 12
footer_para.AppendField("PageNum", FieldType.FieldPage).CharacterFormat.FontSize = 12
footer_para.AppendText(" ページ / 全 ").CharacterFormat.FontSize = 12
footer_para.AppendField("NumPages", FieldType.FieldNumPages).CharacterFormat.FontSize = 12
footer_para.AppendText(" ページ").CharacterFormat.FontSize = 12
技術ポイントと主要メソッド:
-
HeadersFooters.Footerでフッターオブジェクトを取得。 -
AppendField(fieldName, FieldType)で Word フィールドを挿入可能(ページ番号FieldPageや総ページ数FieldNumPages)。 - フッター段落の
Format.HorizontalAlignmentで中央揃えなどを設定可能。
6. 文書の保存とリソース解放
ヘッダー、フッター、画像の設定が完了したら、文書を保存し、リソースを解放します:
from spire.doc import FileFormat
document.SaveToFile("月次報告書.docx", FileFormat.Docx)
document.Dispose()
print("文書作成完了:月次報告書.docx")
技術ポイントと主要メソッド:
-
SaveToFile(filename, FileFormat)で Word 文書を保存。 -
Dispose()で文書オブジェクトのリソースを解放し、ファイルのロックを防止。
作成結果のプレビュー
以下は、上記コードで作成した Word 文書のプレビュー例です:
7. まとめ
本記事では、Python を使用して Word 文書にヘッダー、フッター、画像を自動挿入する方法を紹介しました。プログラミングにより、複数段落のテキスト、企業ロゴ、動的なページ番号を柔軟に追加でき、文書のレイアウトをよりプロフェッショナルに整えることが可能です。Document、AddSection()、HeadersFooters、AddParagraph()、AppendText()、AppendPicture()、AppendField() といった主要メソッドを習得すれば、業務ニーズに合わせた Word 文書を効率的に作成でき、制作の効率と統一性を大幅に向上させることができます。
さらに詳しい Python による Word 文書操作のテクニックは、Spire.Doc for Python 公式チュートリアル をご覧ください。
