2017-08-09 122 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屬性組成。