使用讲义母版幻灯片

本主题讨论 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/> 元素。 以下信息来自

ISO/IEC 29500

规范引入了 <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构造函数创建 类和 类的CommonSlideDataColorMap实例。 类 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;
}