简单地说,问题:可以将文本与Python中的中心对齐吗?
自从我使用Python以来,我已经能够自动化很多事情,我真的很喜欢使用它!然而,我遇到了一个问题。我正试着把我的文字水平地放在幻灯片上。如果你不理解我:

我的案文现在与左对齐,类似于前两段的案文。但是,我希望它们与中间对齐,就像最后两段一样。这是我的代码片段:
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”的文章,但我就是无法让它发挥作用。
提前谢谢你!
发布于 2016-08-13 17:36:11
from pptx.enum.text import PP_ALIGN
shape.paragraphs[0].alignment = PP_ALIGN.CENTER这是直接从Python文档获取的。这对你不管用吗?你在你的问题中说,你听说过PP_PARAGRAPH_ALIGNMENT,但它不能工作。出现了哪些问题?
您可以查看有关Python对齐这里的更多信息。
在我下面发表评论的斯坎尼补充了一个很好的观点,可以解决你的问题:
段落对齐(也称为理由)是一个段落的属性,必须单独应用于每个段落。在您的问题中包含的代码中,如果您添加一行p.alignment = PP_ALIGN.CENTER,您应该得到您想要的。
发布于 2020-09-17 10:33:54
基于@scanny和@Harrison的回答,我得到了使用这两种方法的以下代码:
from pptx import Presentation
from pptx.util import Inches, Pt,Cm
from pptx.enum.text import PP_ALIGN
prs = Presentation()
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(blank_slide_layout)
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
tf.text = "Hello"
txBox.text_frame.paragraphs[0].alignment = PP_ALIGN.CENTER
p = tf.add_paragraph()
p.alignment = PP_ALIGN.CENTER
run = p.add_run()
run.text = "Just an example"
font = run.font
prs.save('test.pptx')发布于 2022-05-24 09:57:24
对我有用的是使用PP_PARAGRAPH_ALIGNMENT
from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT
shape.paragraphs[0].alignment = PP_PARAGRAPH_ALIGNMENT.CENTER请记住,您可以通过使用for在特定text_frame的段落之间切换:
for paragraph in cell.text_frame.paragraphs:
paragraph.font.color.rgb = RGBColor(255, 255, 255)
paragraph.font.size = Pt(9)
paragraph.alignment = PP_PARAGRAPH_ALIGNMENT.CENTERhttps://stackoverflow.com/questions/38935137
复制相似问题