使用python pptx添加项目符号列表
我正在使用python pptx库进行pptx操作。我想在pptx文档中添加项目符号列表 我正在使用以下代码段添加列表项:使用python pptx添加项目符号列表,python,powerpoint,python-pptx,Python,Powerpoint,Python Pptx,我正在使用python pptx库进行pptx操作。我想在pptx文档中添加项目符号列表 我正在使用以下代码段添加列表项: p = text_frame.add_paragraph() run = p.add_run() p.level = 0 run.text = "First" 但它没有显示要点;请指导。试试这个: p = text_frame.add_paragraph() p.level = 0 p.text = "First" 或者如果文本框中已有段落: p = text_fram
p = text_frame.add_paragraph()
run = p.add_run()
p.level = 0
run.text = "First"
但它没有显示要点;请指导。试试这个:
p = text_frame.add_paragraph()
p.level = 0
p.text = "First"
或者如果文本框中已有段落:
p = text_frame.paragraphs[0]
p.level = 0
p.text = "First"
试试这个:
p = text_frame.add_paragraph()
p.level = 0
p.text = "First"
或者如果文本框中已有段落:
p = text_frame.paragraphs[0]
p.level = 0
p.text = "First"
目前无法使用pythonpptx访问bullet属性,但我想分享一个很好的解决方法 这需要使用pptx模板,我们利用幻灯片布局中的级别可以单独定制的事实 例如,在幻灯片布局中,可以将级别0设置为普通文本,级别1设置为项目符号,级别2设置为数字或任何其他所需的列表样式。然后可以修改字体大小、缩进(使用顶部的标尺)和每个级别的任何其他属性,以获得所需的外观 对于我的用例,我只是将级别1和2设置为与级别0具有相同的缩进和大小,这样就可以通过简单地将级别设置为相应的值来创建项目符号列表和编号列表 以下是我的幻灯片布局在模板文件中的外观: 这就是我在代码中设置相应列表样式的方式:
p.level = 0 # Regular text
p.level = 1 # Bullet
p.level = 2 # Numbers
从理论上讲,您应该能够完全按照您想要的方式设置它,即使使用缩进的子列表等等。我所知道的唯一限制是,幻灯片布局中最多可以自定义8个级别。目前无法使用python pptx访问bullet属性,但我想分享一个很好的解决方案 这需要使用pptx模板,我们利用幻灯片布局中的级别可以单独定制的事实 例如,在幻灯片布局中,可以将级别0设置为普通文本,级别1设置为项目符号,级别2设置为数字或任何其他所需的列表样式。然后可以修改字体大小、缩进(使用顶部的标尺)和每个级别的任何其他属性,以获得所需的外观 对于我的用例,我只是将级别1和2设置为与级别0具有相同的缩进和大小,这样就可以通过简单地将级别设置为相应的值来创建项目符号列表和编号列表 以下是我的幻灯片布局在模板文件中的外观: 这就是我在代码中设置相应列表样式的方式:
p.level = 0 # Regular text
p.level = 1 # Bullet
p.level = 2 # Numbers
从理论上讲,您应该能够完全按照您想要的方式设置它,即使使用缩进的子列表等等。我知道的唯一限制是幻灯片布局中最多可以自定义8个级别。我的解决方案:
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="•")
我的解决方案:
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="•")
这个问题在2021年5月27日仍然是最新的。 关于@OD1995的回答,我想补充一点细节,以及我对这个问题的看法 我使用以下代码创建了一个新包:
从pptx.oxml.xmlchemy导入Oxmlement
def getBulletInfo(段落,运行=无):
“”“返回给定和的属性。这是一个大小百分比,可以从25%到350%(100000=100%)。此问题在2021年5月27日仍然是最新的。
关于@OD1995的回答,我想补充一点细节,以及我对这个问题的看法
我使用以下代码创建了一个新包:
从pptx.oxml.xmlchemy导入Oxmlement
def getBulletInfo(段落,运行=无):
“”返回给定和的属性。这是一个大小百分比,可以从25%到350%(100000=100%)