Home » Python » python-pptxの使い方 » python-pptxで文字列を中央揃えに

python-pptxで文字列を中央揃えに

動作検証バージョン:64bit Windows 10 Pro + Python 3.8.0 + python-pptx 0.6.18

「python pptx 文字 中央揃え」
という検索キーワードでのアクセスに気が付きました。

ptyhon-pptxを使って、文字列を中央揃えにするにはどのようなコードを書けばいいのかを探してた方による検索です。

[スポンサードリンク]

テキストボックス中央に文字列を配置するサンプルスクリプト

以下のスクリプトが参考になるでしょう。

import pptx
from pptx.util import Pt
from pptx.enum.text import PP_ALIGN
from pptx.enum.text import MSO_ANCHOR

prs = pptx.Presentation()
layout_blank = prs.slide_layouts[6]
sld = prs.slides.add_slide(layout_blank)

shp = sld.shapes.add_textbox(0, 0, Pt(200), Pt(100))
shp.text = '文字列のサンプル'

tfrm = shp.text_frame
tfrm.paragraphs[0].alignment = PP_ALIGN.CENTER
tfrm.vertical_anchor = MSO_ANCHOR.MIDDLE

prs.save(r'C:\temp\sample_centering.pptx')

「文字列のサンプル」という文字が中央に表示されたテキストボックスの存在する、白紙レイアウトのスライドが1枚存在するsample_centering.pptxファイルが、Cドライブtempフォルダーに作成されます。

文字列を中央に配置する処理

水平方向の文字列配置は、TextFrameオブジェクトの子オブジェクトである_Paragraphオブジェクトalignmentで設定できます。
  tfrm = shp.text_frame
  tfrm.paragraphs[0].alignment = PP_ALIGN.CENTER

公式ドキュメントには、Shapeオブジェクトから_Paragraphオブジェクトを取得できるかのような以下のようなサンプルが掲載されていますが、これではダメです。
from pptx.enum.text import PP_ALIGN
shape.paragraphs[0].alignment = PP_ALIGN.CENTER

「AttributeError: 'Shape' object has no attribute 'paragraphs'」エラーが発生します。

垂直方向の配置設定はTextFrameオブジェクトのvertical_anchorです。
  tfrm.vertical_anchor = MSO_ANCHOR.MIDDLE

[スポンサードリンク]

Home » Python » python-pptxの使い方 » python-pptxで文字列を中央揃えに

「python-pptxの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.