single.php

Pythonで.docx に日本語フォントが適用できない場合の対処法(Document)

PythonでMicrosoft Wordなどのファイルを取り扱うのDocumentライブラリで音源ファイルからボーカルやベース、ドラムなどのパートを分離して保存する場合の手順を忘録的に投稿しておきます。

stylesプロパティでフォントを指定

Documentライブラリを利用して、Pythonからdocxファイルを操作する場合は以下のようにします。この時に[doc.styles]でフォントやサイズなど書体スタイルを変更可能ですが、日本語フォントの場合、適用されません。

from docx import Document

# docxを作成
doc = Document()

# docxに文章を追加
doc.add_paragraph("見出し1", style="Heading 1")
doc.add_paragraph("本文", style="Normal")

# 各種スタイルを設定
# Heading 1(見出し1)
style = doc.styles['Heading 1']
style.font.name = '游ゴシック Light'
style.font.size = Pt(10.5)

# Normal(標準)
style = doc.styles['Normal']
style.font.name = '游明朝'
style.font.size = Pt(10.5)

doc.save(”sample.docx”)

日本語フォントを適用させる場合

[游ゴシック]や[游明朝]など日本語フォントを適用させるには[qn]を使った設定を追加する必要があります。

from docx import Document

# docxを作成
doc = Document()

# docxに文章を追加
doc.add_paragraph("見出し1", style="Heading 1")
doc.add_paragraph("本文", style="Normal")

# 各種スタイルを設定
# Heading 1(見出し1)
style = doc.styles['Heading 1']
style.font.name = '游ゴシック Light'
style.font.size = Pt(10.5)
style._element.rPr.rFonts.set(qn('w:eastAsia'), '游ゴシック Light')

# Normal(標準)
style = doc.styles['Normal']
style.font.name = '游明朝'
style.font.size = Pt(10.5)
style._element.rPr.rFonts.set(qn('w:eastAsia'), '游明朝')

doc.save(”sample.docx”)

まとめ

今回は短い記事ですが、Pythonの Document ライブラリで.docxの文章で日本語フォントの書体を適用したい場合の手順について書きました。

[游ゴシック]や[游明朝]など日本語フォントを適用させるには[qn]を使った設定を追加する必要があります。

Pythonで.docxファイルに追加した文章に日本語フォントが適用したい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です