使用讲义母版幻灯片
本主题讨论 Open XML SDK for Office HandoutMaster 类,以及它与 Open XML 文件格式 PresentationML 架构的关系。 有关构成 PresentationML 文档的部件和元素的整体结构的详细信息,请参阅 PresentationML 文档的结构。
PresentationML 中的讲义母版幻灯片
ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <handoutMaster/>
元素,该元素用于表示 PresentationML 文档中的讲义母版幻灯片,如下所示:
此元素指定讲义母版幻灯片的实例。 在讲义母版幻灯片中,包含描述讲义幻灯片中的对象及其对应格式的所有元素。 在讲义母版幻灯片中, cSld 元素指定共用幻灯片元素,如形状及其附加的文本正文。 讲义母版幻灯片中还有其他属性,但 cSld 包含 handoutMaster 幻灯片的大部分预期用途。
© ISO/IEC 29500:2016
下表列出了使用讲义母版幻灯片时使用的元素的 <handoutMaster/>
子元素,以及与之对应的 Open XML SDK 类。
PresentationML 元素 | Open XML SDK 类 |
---|---|
<ClrMap/> |
ColorMap |
<cSld/> |
CommonSlideData |
<extLst/> |
ExtensionListWithModification |
<hf/> |
HeaderFooter |
Open XML SDK HandoutMaster 类
Open XML SDK HandoutMaster
类表示 <handoutMaster/>
在 PresentationML 文档的 Open XML 文件格式架构中定义的元素。
HandoutMaster
使用 类可操作 PresentationML 文档中的各个<handoutMaster/>
元素。
以下各节显示了通常与 HandoutMaster
类关联的类。
ColorMap 类
类 ColorMap
对应于 <ClrMap/>
元素。
ISO/IEC 29500 规范中的以下信息介绍了 元素<ClrMap/>
:
此元素指定可将一种配色方案变换为另一种配色方案的映射层。 每个属性表示一个可在此母版中引用的颜色名称,值为主题中的对应颜色。
示例:请考虑以下应用于幻灯片母版的颜色映射:
<p:clrMap bg1="dk1" tx1="lt1" bg2="dk2" tx2="lt2" accent1="accent1"
accent2="accent2" accent3="accent3" accent4="accent4"
accent5="accent5"
accent6="accent6" hlink="hlink" folHlink="folHlink"/>
CommonSlideData 类
类 CommonSlideData
对应于 <cSld/>
元素。
ISO/IEC 29500 规范中的以下信息介绍了 元素<cSld/>
:
此元素指定与所有幻灯片类型相关的幻灯片信息类型的容器。 所有幻灯片都共享一组独立于幻灯片类型的通用属性;任何特定幻灯片的这些属性的描述都存储在该幻灯片的 <cSld/>
容器中。 由父元素指明的特定于幻灯片类型的幻灯片数据存储在其他位置。
<cSld/>
中的实际数据只描述特定的父幻灯片;这些数据只是存储的对所有幻灯片通用的信息类型。
ExtensionListWithModification 类
类 ExtensionListWithModification
对应于 <extLst/>
元素。 以下信息来自
规范引入了 <extLst/>
元素:
此元素指定具有修改能力的扩展列表,在该列表中定义元素类型 <ext/>
的所有未来扩展。
扩展列表以及相应的未来扩展用于扩展 PresentationML 框架的存储功能。 这允许在框架中本机存储各种新类型的数据。
注意
使用此 extLst 元素,生成应用程序可以存储是否已修改此扩展属性。
HeaderFooter 类
类 HeaderFooter
对应于 <hf/>
元素。
ISO/IEC 29500 规范中的以下信息介绍了 元素<hf/>
:
此元素指定幻灯片的页眉和页脚信息。 页眉和页脚由文本占位符组成,它们在所有幻灯片和幻灯片类型中应该保持一致,例如日期和时间、幻灯片编号以及自定义页眉和页脚文本。
处理 HandoutMaster 类
如下面的 Open XML SDK 代码示例所示,类的每个实例 HandoutMaster
都与 类的 HandoutMasterPart 一个实例相关联,该实例表示讲义母版部件、PresentationML 演示文稿文件包的一部分以及包含讲义的演示文稿文件所需的部件。
HandoutMaster
因此,表示 元素的<handoutMaster/>
类也与一系列表示元素子元素<handoutMaster/>
的其他类相关联。 如以下代码示例所示,这些类包括 CommonSlideData
类、 ColorMap
类、 ShapeTree 类和 Shape 类。
Open XML SDK 代码示例
以下方法将新的讲义母版部件添加到现有演示文稿,并在新的讲义母版部件中创建 Open XML SDK HandoutMaster
类的实例。 类HandoutMaster
构造函数创建 类和 类的CommonSlideData
ColorMap
实例。 类 CommonSlideData
构造函数创建 类的 ShapeTree 实例,其构造函数反过来又创建其他类实例:类的 NonVisualGroupShapeProperties 实例、类的 GroupShapeProperties 实例和 类的 Shape 实例。
代码中字母 P
表示的命名空间是 命名空间。
static HandoutMasterPart CreateHandoutMasterPart(PresentationPart presentationPart)
{
HandoutMasterPart handoutMasterPart1 = presentationPart.AddNewPart<HandoutMasterPart>();
handoutMasterPart1.HandoutMaster = new HandoutMaster(
new CommonSlideData(
new ShapeTree(
new P.NonVisualGroupShapeProperties(
new P.NonVisualDrawingProperties() { Id = (UInt32Value)1U, Name = "" },
new P.NonVisualGroupShapeDrawingProperties(),
new ApplicationNonVisualDrawingProperties()),
new GroupShapeProperties(new TransformGroup()),
new P.Shape(
new P.NonVisualShapeProperties(
new P.NonVisualDrawingProperties() { Id = (UInt32Value)2U, Name = "Title 1" },
new P.NonVisualShapeDrawingProperties(new ShapeLocks() { NoGrouping = true }),
new ApplicationNonVisualDrawingProperties(new PlaceholderShape())),
new P.ShapeProperties(),
new P.TextBody(
new BodyProperties(),
new ListStyle(),
new Paragraph(new EndParagraphRunProperties() { Language = "en-US" }))))),
new P.ColorMap()
{
Background1 = D.ColorSchemeIndexValues.Light1,
Text1 = D.ColorSchemeIndexValues.Dark1,
Background2 = D.ColorSchemeIndexValues.Light2,
Text2 = D.ColorSchemeIndexValues.Dark2,
Accent1 = D.ColorSchemeIndexValues.Accent1,
Accent2 = D.ColorSchemeIndexValues.Accent2,
Accent3 = D.ColorSchemeIndexValues.Accent3,
Accent4 = D.ColorSchemeIndexValues.Accent4,
Accent5 = D.ColorSchemeIndexValues.Accent5,
Accent6 = D.ColorSchemeIndexValues.Accent6,
Hyperlink = D.ColorSchemeIndexValues.Hyperlink,
FollowedHyperlink = D.ColorSchemeIndexValues.FollowedHyperlink
});
return handoutMasterPart1;
}