首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python-pptx添加项目符号列表

使用python-pptx添加项目符号列表
EN

Stack Overflow用户
提问于 2018-03-20 20:22:37
回答 4查看 3.8K关注 0票数 1

我使用python-pptx库进行pptx操作。我想在pptx文档中添加一个项目符号列表。

我正在使用以下代码片段来添加列表项:

代码语言:javascript
复制
p = text_frame.add_paragraph()
run = p.add_run()
p.level = 0
run.text = "First"

但它不显示项目符号;请指导。

EN

回答 4

Stack Overflow用户

发布于 2020-02-29 04:21:16

目前还不能使用python-pptx访问bullet属性,但我想分享一个对我很有用的解决方法。

这需要使用pptx模板,在该模板中,我们利用了幻灯片布局中的级别可以单独定制的事实。

例如,在幻灯片布局中,您可以将级别0设置为普通文本,将级别1设置为项目符号,将级别2设置为数字或您想要的任何其他列表样式。然后,您可以修改字体大小、缩进(使用顶部的标尺)和每个级别的任何其他属性,以获得所需的外观。

对于我的用例,我只是将级别1和级别2设置为与级别0具有相同的缩进和大小,这样只需将级别设置为相应值,就可以创建项目符号列表和编号列表。

这是我的幻灯片布局在模板文件中的外观:slide layout example

下面是我如何在代码中设置相应的列表样式:

代码语言:javascript
复制
p.level = 0  # Regular text
p.level = 1  # Bullet
p.level = 2  # Numbers

从理论上讲,你应该能够完全按照你想要的方式设置它,即使是缩进的子列表等等。我所知道的唯一限制是,在幻灯片布局中似乎最多有8个级别可以自定义。

票数 4
EN

Stack Overflow用户

发布于 2019-02-03 20:19:07

试试这个:

代码语言:javascript
复制
p = text_frame.add_paragraph()
p.level = 0
p.text = "First"

或者如果text_frame已经有一个段落:

代码语言:javascript
复制
p = text_frame.paragraphs[0]
p.level = 0
p.text = "First"
票数 0
EN

Stack Overflow用户

发布于 2020-10-16 20:48:00

我的解决方案是:

代码语言:javascript
复制
from pptx.oxml.xmlchemy import OxmlElement

def SubElement(parent, tagname, **kwargs):
        element = OxmlElement(tagname)
        element.attrib.update(kwargs)
        parent.append(element)
        return element
    
def makeParaBulletPointed(para):
    """Bullets are set to Arial,
        actual text can be a different font"""
    pPr = para._p.get_or_add_pPr()
    ## Set marL and indent attributes
    pPr.set('marL','171450')
    pPr.set('indent','171450')
    ## Add buFont
    _ = SubElement(parent=pPr,
                   tagname="a:buFont",
                   typeface="Arial",
                   panose="020B0604020202020204",
                   pitchFamily="34",
                   charset="0"
                   )
    ## Add buChar
    _ = SubElement(parent=pPr,
                   tagname='a:buChar',
                   char="•")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49384134

复制
相关文章

相似问题

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