2016-08-13 438 views
1

問題簡而言之:是否可以將文本與Python-pptx中的中心對齊?用Python-pptx居中對齊文本

由於我使用的是Python-pptx,我已經能夠自動化很多事情,我非常喜歡使用它!但是,我遇到了一個問題。我試圖在幻燈片上水平放置文本。如果你不理解我:

See how the first two paragraphs differ from the other two?

我的文字現在左對齊,類似的前兩段文字。但是,我希望他們與中心保持一致,就像最後兩段一樣。這是我的代碼片段:

left = Cm(3) 
top = Cm(2.5) 
width = Cm(15) 
height = Cm(1) 
txBox = slide.shapes.add_textbox(left, top, width, height) 
tf = txBox.text_frame 
p = tf.add_paragraph() 
run = p.add_run() 
run.text = "Just an example" 
font = run.font 
font.size = Pt(30) 

我查看了文檔,但找不到任何有用的東西。我讀了一些關於「MSO_VERTICAL_ANCHOR」和「PP_PARAGRAPH_ALIGNMENT」的內容,但我無法使其工作。

預先感謝您!

回答

2
from pptx.enum.text import PP_ALIGN 

shape.paragraphs[0].alignment = PP_ALIGN.CENTER 

這是直接從Python pptx Docs。這不適合你嗎?你在你的問題中說過,你聽說過PP_PARAGRAPH_ALIGNMENT,但無法讓它工作。出現了什麼問題?

您可以查看有關Python pptx alignment here的更多信息。

Scanny,誰評論我下面添上精彩的一筆點,將解決你的問題:

段落對齊(也稱爲理由)是一款的財產,必須單獨應用到每個段落。在你問題中包含的代碼中,如果你添加一行p.alignment = PP_ALIGN.CENTER,你應該得到你想要的。

+0

這確實是我嘗試的選項之一。我用'tf'替換了'形狀',但沒有產生任何錯誤,但是文字仍然沒有對齊(嘗試了其他一些可能性)。可能它不應該是'tf',而是其他我不知道的東西。無論如何,謝謝你的努力! – PythonPupil1906

+2

@ PythonPupil1906 - 哈里森非常正確。段落對齊(也稱爲* justification *)是段落的屬性,必須單獨應用於每個段落。在你的問題中包含的代碼中,如果你添加一行'p.alignment = PP_ALIGN.CENTER',你應該得到你想要的。不要忘記接受哈里森的答案作爲「正確的」答案。這就是我們如何在這裏回答問題的「付費」:)另外,一般而言,您應該包含您嘗試過的似乎沒有工作的確切代碼。 – scanny

+0

@scanny真棒點! – Harrison