如何使用pptx python库更改PPT幻灯片上项目符号列表中的缩进

时间:2017-09-05 09:57:07

标签: python powerpoint python-pptx

我已经开始使用' pptx'库以编程方式生成一些基于PPT的报告。我们有一个公司模板,我用它作为基础。它包含一个主幻灯片,其中包含单列格式的项目符号列表,看起来像这样(但每个级别的格式不同,如项目符号类型和颜色。抱歉不能在这里分享实际图片):

Bulleted list format

我想知道是否有办法改变各个级别的位置,因为我们将在MS PowerPoint中更改标尺(或右键单击>段落>缩进)。如果我改变"等级"项目符号列表的参数从第一级更改为第二级以及所有格式。

shape.text_frame.paragraphs[0].level = 2

但我只想将第一级向右移几厘米。所以它看起来像:

Bulleted list shifted to right

我知道一个明显的实现方法是添加具有所需格式的新主幻灯片并使用它。但是如果需要多次更改缩进,则很难为每个特定情况添加新的主幻灯片。因此,我正在搜索是否有办法以编程方式使用' pptx'功能。到目前为止,我无法在'pptx'中找到这样的功能,但我可能错过了它可能或者可能有一些解决方法。如果是这样,我有兴趣知道。

1 个答案:

答案 0 :(得分:0)

简短的回答是“不”。当前版本的python-pptx不支持其API中的项目符号格式。

为此,您需要直接操作底层XML。您可以搜索“python-pptx workaround function”来获取一些示例。

我相信感兴趣的元素是p:sp/p:txBody/a:lstStyle,包含“lvl1pPr”和“lvl2pPr”等元素。

p:txBody

上提供了对Shape.text_frame._element元素的引用