首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文本与Python-pptx对齐

将文本与Python-pptx对齐
EN

Stack Overflow用户
提问于 2016-08-13 17:10:21
回答 3查看 11.8K关注 0票数 8

简单地说,问题:可以将文本与Python中的中心对齐吗?

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

我的案文现在与左对齐,类似于前两段的案文。但是,我希望它们与中间对齐,就像最后两段一样。这是我的代码片段:

代码语言:javascript
复制
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”的文章,但我就是无法让它发挥作用。

提前谢谢你!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-13 17:36:11

代码语言:javascript
复制
from pptx.enum.text import PP_ALIGN

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

这是直接从Python文档获取的。这对你不管用吗?你在你的问题中说,你听说过PP_PARAGRAPH_ALIGNMENT,但它不能工作。出现了哪些问题?

您可以查看有关Python对齐这里的更多信息。

在我下面发表评论的斯坎尼补充了一个很好的观点,可以解决你的问题:

段落对齐(也称为理由)是一个段落的属性,必须单独应用于每个段落。在您的问题中包含的代码中,如果您添加一行p.alignment = PP_ALIGN.CENTER,您应该得到您想要的。

票数 10
EN

Stack Overflow用户

发布于 2020-09-17 10:33:54

基于@scanny和@Harrison的回答,我得到了使用这两种方法的以下代码:

代码语言:javascript
复制
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')
票数 1
EN

Stack Overflow用户

发布于 2022-05-24 09:57:24

对我有用的是使用PP_PARAGRAPH_ALIGNMENT

代码语言:javascript
复制
from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT
shape.paragraphs[0].alignment = PP_PARAGRAPH_ALIGNMENT.CENTER

请记住,您可以通过使用for在特定text_frame的段落之间切换:

代码语言:javascript
复制
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.CENTER
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38935137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档