Python pptx - 如何设置项目符号和顶部对齐

时间:2017-08-14 06:48:39

标签: python powerpoint python-pptx

如何将文本设置为Top(标准正文格式化设置中的第一行)并且未设置为TOP对齐?

Add_paragraph函数没有激活第一个子弹点等级(等级= 0)?

有人知道如何解决这个问题? (见图片了解左侧问题和右侧目标)

# Shape position
left = Inches(0.4)
top = Inches(1.5)
width = Inches(4.5)
height = Inches(1.6)

box = shape.add_shape(MSO_SHAPE.RECTANGLE, left, top, width, height)
text_frame = box.text_frame
text_frame.clear()  # not necessary for newly-created shape
#Fill
fill = box.fill
line = box.line
fill.solid()
fill.fore_color.theme_color = MSO_THEME_COLOR.ACCENT_6
line.color.theme_color = MSO_THEME_COLOR.ACCENT_6

p = text_frame.add_paragraph()
run = p.add_run()
# bullet ?
#p.level = 0
# Top position?
p.vertical_anchor = MSO_ANCHOR.TOP
p.alignment = PP_ALIGN.LEFT    
p.margin_left = Inches(0.02)
p.margin_top = Inches(0.00)
#p.margin_bottom = Inches(0.08)

run.text = "..."  
# Fonts
font = run.font
font.name = 'Arial (Body)'
font.size = Pt(8)
font.bold = False
font.italic = None  # cause value to be inherited from theme
font.color.theme_color = MSO_THEME_COLOR.ACCENT_1

enter image description here

1 个答案:

答案 0 :(得分:1)

您的问题分为两部分。第一个很容易 - 如何设置顶部对齐。似乎形状有默认的“中心”。垂直对齐。在给出的代码中,您正在设置单个段落的垂直锚点。而是尝试将text_frame的垂直锚点设置为MSO_VERTICAL_ANCHOR.TOP。

text_frame.vertical_anchor = MSO_VERTICAL_ANCHOR.TOP

对于第二部分,你需要子弹,我不认为pptx具有打开/关闭子弹的功能。唯一的方法是在主幻灯片中创建具有所需文本格式的形状,并将其用作起点。这可以通过编辑模板(幻灯片母版)来完成。例如,您可以创建矩形文本形状,如下所示: -

Shape with Text formating

希望有所帮助。