2017-08-09 120 views
1

在Powerpoint中,我想创建内容幻灯片的议程/表格,其中的章节标题可作为这些议程幻灯片的输入。部分允许构建演示文档。它们在幻灯片分类器和大纲模式中特别有用。 为了构建议程幻灯片,方便地利用章节标题是咨询(Slideproof,Think-Cell,...)中常见的PowerPoint插件的一个特性。我们的目标是更改一个部分的标题,并在所有议程幻灯片中反映这一变化 - 无需触及每个议程幻灯片。python-pptx - 如何以编程方式访问演示版块标题?

有没有办法以编程方式访问这些节标题,理想情况下使用python-pptx?到目前为止,我已经尝试阅读带有独特节标题的示例pptx文件的内容。不幸的是,在查看文件内容时,在pptx文件中找到相同的节标题没有成功。

回答

2

PowerPoint 2010中,后来有部分作为一种组织的幻灯片演示文稿中的概念:

https://support.office.com/en-us/article/Organize-your-slides-into-sections-de4bf162-e9cc-4f58-b64a-7ab09443b9f8

这些部分对象与幻灯片截然不同,并出现在幻灯片分类器和大纲模式中。我将其描述为主要的创作功能,因为它们不会直接出现在演示模式中。

这是相对于一个塞克(发音SEG-方式)滑动,这简直是仅具有一个标题,通常垂直居中滑动的概念,即“刺破”幻灯片的顺序成有意义的组。这些可以(但不一定)基于为此目的的特定幻灯片布局,可能命名为“部分标题”或“塞格幻灯片”。

python-pptx尚未对部分概念提供API支持。但是,如果您只是使用seque幻灯片,那么m_____z提出的方法就是要走的路。

+0

我确实对段落对象感兴趣,因为我们可以在幻灯片分类器和大纲模式中找到它们,就像您所描述的那样。很高兴知道这目前不是python-pptx API的一部分。 –

+0

尽管python-pptx尚未提供相应的API,但如果您在文本编辑器中打开pptx文件并将文档树导航到ppt/presentation.xml,则可以找到该部分的信息。搜索'sectionLst'或'section name'。如果从MS Powerpoint查看,则在该位置找到的任何xml更改都将反映在pptx中。 –

+1

@PeterLustig如果'prs'是'Presentation'对象,那么'prs._element'会给你'presentation.xml' XML文档中的根元素。从那里你可以使用像XPath一样的'prs._element.xpath('.// p:sectionLst')'来检索后代元素,然后使用'lxml.etree._Element' [API调用](http://lxml.de /api/lxml.etree._Element-class.html)像'.addprevious()'来操纵那里的东西。 – scanny

1

我建议检查python-pptx documentation以打开和解析演示文稿。它将允许您遍历该演示文稿中的所有幻灯片。由于您仅查找部分幻灯片,因此可以使用每张幻灯片的slide_layout属性,该属性由slide_master属性describes the layout组成,该属性用作筛选幻灯片的基础。在幻灯片中,您可以遍历给定幻灯片中的所有形状。您可以使用shape_type属性来查找合适的形状 - 在这种情况下,它将是here中描述的文本框,它由text属性组成。