如何将文本设置为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
答案 0 :(得分:1)
您的问题分为两部分。第一个很容易 - 如何设置顶部对齐。似乎形状有默认的“中心”。垂直对齐。在给出的代码中,您正在设置单个段落的垂直锚点。而是尝试将text_frame的垂直锚点设置为MSO_VERTICAL_ANCHOR.TOP。
text_frame.vertical_anchor = MSO_VERTICAL_ANCHOR.TOP
对于第二部分,你需要子弹,我不认为pptx具有打开/关闭子弹的功能。唯一的方法是在主幻灯片中创建具有所需文本格式的形状,并将其用作起点。这可以通过编辑模板(幻灯片母版)来完成。例如,您可以创建矩形文本形状,如下所示: -
希望有所帮助。