python docx中国語フォント設定

1383 ワード

最近docxでwordドキュメントを生成するのに使いましたが、docx自体は使いやすく、持参した様々なスタイルがきれいで、中国語のサポートが足りないのが欠点です.中国語フォントが設定されていない場合、生成されたドキュメントは中国語を表示できますが、筆画の大きさが異なり、見苦しいです.
解決策:まずドキュメントを作成し、documentを宣言します.
from docx import Document
document = Document()

docxに内蔵されたスタイルはdocumentで使用できます.stylesが受け取りました.
本文はNormalで、タイトルスタイルはタイトル宣言の基本により、それぞれHeading 1からHeading 9まで、またtable、listなど様々なwordに対応したスタイルがあります.documentを巡ることができます.stylesが表示します.
本文Normalを例に挙げます.まず、フォントの変更に関連するスタイルオブジェクトのプロパティを見てみましょう.
1. document.styles[‘Normal’].font.name
研究に興味のある学生は公式文書を見てFontの紹介を見ることができます.http://python-docx.readthedocs.io/en/latest/dev/analysis/features/text/font.html?highlight=font. ここではfontを変更するだけです.name.
2. document.styles[‘Normal’]._element.rPr.rFonts
fontのみ変更nameが足りないので、呼び出す必要があります.element.rPr.rFontsのset()メソッド.
総合するとこうなる
from docx.oxml.ns import qn

document.styles['Normal'].font.name = u'  '
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'  ')

問題が解決し、表のフォントが「宋体」に変更されました.