簡體   English   中英

MS Office openxml 獲取PowerPoint幻燈片的幻燈片布局

[英]MS Office openxml get slide layout of powerpoint slide

我通過閱讀底層 xml 從 powerpoint 文檔中提取數據。

我想獲取特定幻燈片正在使用的幻燈片母版布局的名稱,但我不知道如何從相關幻燈片元素中獲取此信息。

例如,我的幻燈片母版有多種布局,其中一種稱為1_Title Slide

我可以打開 xml 並輕松找到幻燈片母版布局和名稱列表。 我想要的幻燈片母版布局如下所示:

<p:sldLayout xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" showMasterSp="0" userDrawn="1"><p:cSld name="1_Title Slide">... </p:sldLayout>

布局名稱顯然是1_Title Slide

但是,當我在我知道正在使用該布局的<p:sld />幻燈片元素中搜索該字符串時,我找不到該文本。 布局有很多不同的元素和屬性,大概是因為有問題的布局有幾個占位符和形狀,所以很難找出 xml 是如何引用它的。 openxml 中的哪些標記或屬性將布局的“唯一 ID”存儲在幻燈片元素中? 它是如何映射的?

如您所知,標題為 1_Title Slide 的布局是一種意外布局,它是通過粘貼來自不同演示文稿的幻燈片來實現的。 它不是模板或主題所固有的。

有關 XML 部件之間關系的參考,請在_rels文件夾中查找關系文件。 所以slide1.xml將有一個名為slide1.xml.rels的文件。 其中一個條目將如下所示:

<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout7.xml"/>

然后打開 slideLayout7.xml 並獲取布局名稱。

根據Microsoft 文檔,Open XML SDK 是這樣定義的:

The Open XML SDK 2.5 simplifies the task of manipulating Open XML packages and the underlying Open XML schema elements within a package. Open XML SDK 2.5 封裝了開發人員在 Open XML 包上執行的許多常見任務,因此您只需幾行代碼即可執行復雜的操作。

但看起來用 Open XML SDK 解決您的幻燈片布局問題並不容易。 如果您將Aspose.Slides 用於 .NET ,您將獲得如下所示的幻燈片布局:

using var presentation = new Presentation("example.pptx");
var firstSlide = presentation.Slides[0];
var layoutName = firstSlide.LayoutSlide.Name;

文檔| API 參考| 免費論壇

您還可以評估Aspose.Slides Cloud以進行演示操作。 這個基於 REST 的 API 允許您每月為 API 學習和演示處理進行 150 次免費的 API 調用。

我在 Aspose 工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM