web-dev-qa-db-ja.com

python-docxで段落フォントを設定します

私はpython-docx0.7.6を使用しています。

特定の段落のフォントファミリーとサイズを設定する方法がわからないようです。

有る .styleプロパティがstyle="Times New Roman"は機能しません。

誰かが私に例を教えてもらえますか?

ありがとう。

7
MavWolverine

実行スタイルのサポートが最新バージョンのpython-docxに追加されました

0
MavWolverine

これは、NormalスタイルをフォントArialおよびサイズ10ptに設定する方法です。

from docx.shared import Pt

style = document.styles['Normal']
font = style.font
font.name = 'Arial'
font.size = Pt(10)

そして、これはそれをparagraphに適用する方法です。

paragraph.style = document.styles['Normal']

現在のバージョンのpython-docx(0.8.5)を使用します。

19
Zenadix

APIドキュメント を読んだ後、独自のスタイルを作成して適用する方法を理解することができました。 WD_STYLE_TYPE.PARAGRAPHを使用するようにこのコードを変更することにより、同じ方法で段落スタイルオブジェクトを作成できます。私が理解するのに1分かかったのは、オブジェクトとそれらがどのレベルで適用されているかでした。そのことを明確に理解してください。私が直感に反していると思ったのは、作成後にスタイルのプロパティを定義することです。

これが私がキャラクターレベルのスタイルオブジェクトを作成した方法です。

document = Document(path to Word document)

#文字レベルのスタイルオブジェクト( "CommentsStyle")を作成し、そのパラメータを定義します

obj_styles = document.styles
obj_charstyle = obj_styles.add_style('CommentsStyle', WD_STYLE_TYPE.CHARACTER)
obj_font = obj_charstyle.font
obj_font.size = Pt(10)
obj_font.name = 'Times New Roman'

これが私がスタイルを実行に適用した方法です。

paragraph.add_run(any string variable, style = 'CommentsStyle').bold = True
8
Alex Nies

Python-docxのドキュメントは次のとおりです: http://python-docx.readthedocs.org/en/latest/

デフォルトのテンプレートで使用できるスタイルは次のとおりです。 http://python-docx.readthedocs.org/en/latest/user/styles.html

上記の例では、スタイルIDの代わりに書体名( "Times New Roman")を使用しました。たとえば、「He​​ading1」を使用すると、段落スタイルであるため、フォントの外観が変更されます。

現在、python-docxのテキストに書体名またはフォントサイズを直接適用するためのAPIはありませんが、次のリリースでは、おそらく1か月以内にそれ以上のものが提供される予定です。それまでの間、必要な段落と文字の設定のスタイルを定義し、それらのスタイルを適用することができます。 CSSがHTMLにフォーマットを適用するための推奨される方法と同様に、スタイルの使用はWordでフォーマットを適用するための推奨される方法です。

0
scanny