使用演示文稿

上次修改时间: 2010年10月8日

适用范围: Excel 2010 | Office 2010 | PowerPoint 2010 | Word 2010

本文内容
PresentationML 中的演示文稿
Open XML SDK 2.0 Presentation 类
处理 Presentation 类
Open XML SDK 代码示例
生成的 PresentationML

本主题讨论 Open XML SDK 2.0 for Microsoft OfficePresentation 类以及它与 Open XML 文件格式 PresentationML 架构的关系。有关构成 PresentationML 文档的部件和元素的整体结构的详细信息,请参阅 PresentationML 文档的结构

PresentationML 中的演示文稿

ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <presentation> 元素,该元素用于表示 PresentationML 文档中的演示文稿,如下所示:

此元素中会指定演示文稿范围的基本属性。

[示例:考虑以下具有一个幻灯片母版和两个幻灯片的演示文稿。除了这些常用的元素之外,还可以指定其他属性,如幻灯片大小、备注大小和默认文本样式。

<p:presentation xmlns:a="" xmlns:r="" xmlns:p="">
    <p:sldMasterIdLst>
        <p:sldMasterId id="2147483648" r:id="rId1"/>
    </p:sldMasterIdLst>
    <p:sldIdLst>
        <p:sldId id="256" r:id="rId3"/>
        <p:sldId id="257" r:id="rId4"/>
    </p:sldIdLst>
    <p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>
    <p:notesSz cx="6858000" cy="9144000"/>
    <p:defaultTextStyle>
        …
    </p:defaultTextStyle>
</p:presentation>

示例结束]

© ISO/IEC29500: 2008。

<presentation> 元素通常包含一些子元素,这些子元素列出演示文稿中包含的幻灯片母版、幻灯片和自定义幻灯片放映。此外,它通常还包含用于指定其他演示文稿属性(如幻灯片大小、备注大小和默认文本样式)的元素。

<presentation> 元素是 PresentationML Presentation 部件的根元素。有关构成 PresentationML 文档的部件和元素的整体结构的详细信息,请参阅 PresentationML 文档的结构

下表列出了处理演示文稿时使用的 <presentation> 元素的一些最常见子元素以及与它们对应的 Open XML SDK 2.0 类。

PresentationML 元素

Open XML SDK 2.0 类

<sldMasterIdLst>

SlideMasterIdList

<sldMasterId>

SlideMasterId

<sldIdLst>

SlideIdList

<sldId>

SlideId

<notesMasterIdLst>

NotesMasterIdList

<handoutMasterIdLst>

HandoutMasterIdList

<custShowLst>

CustomShowList

<sldSz>

SlideSize

<notesSz>

NotesSize

<defaultTextStyle>

DefaultTextStyle

Open XML SDK 2.0 Presentation 类

Open XML SDK 2.0 Presentation 类表示在 PresentationML 文档的 Open XML 文件格式架构中定义的 <presentation> 元素。使用 Presentation 类可以处理 PresentationML 文档中的各个 <presentation> 元素。

以下各节说明了通常与 Presentation 类相关联的类。

SlideMasterIdList 类

共享同一母版的所有幻灯片都从该母版继承同一布局。SlideMasterIdList 类对应于 <sldMasterIdList> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <sldMasterIdList> 元素,该元素用于表示 PresentationML 文档中的幻灯片母版 ID 列表,如下所示:

该元素指定相应演示文稿中提供的幻灯片母版幻灯片的标识信息列表。幻灯片母版是专门设计用作所有相关子布局幻灯片的模板的幻灯片。

© ISO/IEC29500: 2008。

SlideMasterId 类

SlideMasterId 类对应于 <sldMasterId> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <sldMasterId> 元素,该元素用于表示 PresentationML 文档中的幻灯片母版 ID,如下所示:

该元素指定相应演示文稿中提供的幻灯片母版。幻灯片母版是专门设计用作所有相关子布局幻灯片的模板的幻灯片。

[示例:考虑演示文稿内幻灯片母版的以下规范

<p:presentation xmlns:a="" xmlns:r="" xmlns:p="" embedTrueTypeFonts="1">
    …
    <p:sldMasterIdLst>
        <p:sldMasterId id="2147483648" r:id="rId1"/>
    </p:sldMasterIdLst>
    …
</p:presentation>

示例结束]

© ISO/IEC29500: 2008。

SlideIdList 类

SlideIdList 类对应于 <sldIdLst> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <sldIdLst> 元素,该元素用于表示 PresentationML 文档中的幻灯片 ID 列表,如下所示:

该元素指定相应演示文稿中提供的幻灯片的标识信息列表。幻灯片包含特定于单个幻灯片的信息,如特定于幻灯片的形状和文本信息。

© ISO/IEC29500: 2008。

SlideId 类

SlideId 类对应于 <sldId> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <sldId> 元素,该元素用于表示 PresentationML 文档中的幻灯片 ID,如下所示:

该元素指定相应演示文稿中提供的演示文稿幻灯片。幻灯片包含特定于单个幻灯片的信息,如特定于幻灯片的形状和文本信息。

[示例:考虑演示文稿内幻灯片母版的以下规范

<p:presentation xmlns:a="" xmlns:r="" xmlns:p="" embedTrueTypeFonts="1">
    …
    <p:sldIdLst>
        <p:sldId id="256" r:id="rId3"/>
        <p:sldId id="257" r:id="rId4"/>
        <p:sldId id="258" r:id="rId5"/>
        <p:sldId id="259" r:id="rId6"/>
        <p:sldId id="260" r:id="rId7"/>
    </p:sldIdLst>
    ...
</p:presentation>

示例结束]

© ISO/IEC29500: 2008。

NotesMasterIdList 类

NotesMasterIdList 类对应于 <notesMasterIdLst> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <notesMasterIdLst> 元素,该元素用于表示 PresentationML 文档中的备注母版 ID 列表,如下所示:

该元素指定相应演示文稿中提供的备注母版幻灯片的标识信息列表。备注母版是专门设计用于将幻灯片与任何附加备注一起打印的幻灯片。

© ISO/IEC29500: 2008。

HandoutMasterIdList 类

HandoutMasterIdList 类对应于 <handoutMasterIdLst> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <handoutMasterIdLst> 元素,该元素用于表示 PresentationML 文档中的讲义母版 ID 列表,如下所示:

该元素指定相应演示文稿中提供的讲义母版幻灯片的标识信息列表。讲义母版是专门设计用于打印为讲义的幻灯片。

© ISO/IEC29500: 2008。

CustomShowList 类

CustomShowList 类对应于 <custShowLst> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <custShowLst> 元素,该元素用于表示 PresentationML 文档中的自定义放映列表,如下所示:

该元素指定相应演示文稿中提供的所有自定义放映列表。自定义放映是定义的幻灯片序列,它允许以任意顺序显示演示文稿中的幻灯片。

© ISO/IEC29500: 2008。

SlideSize 类

SlideSize 类对应于 <sldSz> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <sldSz> 元素,该元素用于表示 PresentationML 文档中的演示文稿幻灯片大小,如下所示:

该元素指定演示文稿幻灯片平面的大小。演示文稿幻灯片中的对象可以在这些范围之外指定,但这是呈现或打印幻灯片时显示的背景平面的大小。

[示例:考虑下面指定的演示文稿幻灯片的大小。

<p:presentation xmlns:a="" xmlns:r="" xmlns:p="" embedTrueTypeFonts="1">
    …
    <p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>
    …
</p:presentation>

示例结束]

© ISO/IEC29500: 2008。

NotesSize 类

NotesSize 类对应于 <notesSz> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <notesSz> 元素,该元素用于表示 PresentationML 文档中的备注幻灯片大小,如下所示:

该元素指定用于备注幻灯片和讲义幻灯片的幻灯片平面的大小。备注幻灯片中的对象可以在这些范围之外指定,但是呈现或打印时备注幻灯片具有指定大小的背景平面。该元素用于指定在应用程序可选择生成的任何特殊打印输出格式(如,大纲讲义)中与内容适应的区域。

[示例:考虑下面指定的备注幻灯片的大小。

<p:presentation xmlns:a="" xmlns:r="" xmlns:p="" embedTrueTypeFonts="1">
    …
    <p:notesSz cx="9144000" cy="6858000"/>
    …
</p:presentation>

示例结束]

© ISO/IEC29500: 2008。

DefaultTextStyle 类

DefaultTextStyle 类对应于 <defaultTextStyle> 元素。ISO/IEC 29500(该链接可能指向英文页面) 规范介绍了 Open XML PresentationML <defaultTextStyle> 元素,该元素用于表示 PresentationML 文档中的默认文本样式,如下所示:

该元素指定要在演示文稿中使用的默认文本样式。插入新幻灯片时,如果该幻灯片未与母版幻灯片相关联或者如果未以其他方式为演示文稿幻灯片中的文本指定样式信息,则可以引用此处定义的文本样式。

© ISO/IEC29500: 2008。

处理 Presentation 类

如下面的 Open XML SDK 代码示例所示,每个 Presentation 类实例与一个 PresentationPart 类实例相关联,后者表示演示文稿部件,它是 PresentationML 演示文稿文件包必需的部件之一。

因此,表示 <presentation> 元素的 Presentation 类还与表示 <presentation> 元素的子元素的一系列其他类相关联。这些类包括 SlideMasterIdList、SlideIdList、SlideSize、NotesSize 和 DefaultTextStyle 类,如下面的代码示例所示。

Open XML SDK 代码示例

来自如何:通过提供文件名创建演示文稿文档文章的以下代码示例使用 Open XML SDK 2.0 的 PresentationDocument 类的 Create(String, PresentationDocumentType) 方法创建该同一类的实例,该实例具有指定的名称和文件路径。然后,它使用 AddPresentationPart() 方法向文档文件添加 PresentationPart 类的实例。接下来,它创建表示演示文稿的 Presentation 类的实例。它将对 PresentationPart 类实例的引用传递到 CreatePresentationParts 过程,该过程创建演示文稿文件的其他必需部件。CreatePresentation 过程通过关闭它先前打开的 PresentationDocument 类实例来执行清理。

CreatePresentationParts 过程创建 SlideMasterIdList、SlideIdList、SlideSize、NotesSize 和 DefaultTextStyle 类的实例,并将它们追加到演示文稿。

public static void CreatePresentation(string filepath)
        {
            // Create a presentation at a specified file path. The presentation document type is pptx, by default.
            PresentationDocument presentationDoc = PresentationDocument.Create(filepath, PresentationDocumentType.Presentation);
            PresentationPart presentationPart = presentationDoc.AddPresentationPart();
            presentationPart.Presentation = new Presentation();

            CreatePresentationParts(presentationPart);

            // Close the presentation handle.
            presentationDoc.Close();
        } 
private static void CreatePresentationParts(PresentationPart presentationPart)
        {
            SlideMasterIdList slideMasterIdList1 = new SlideMasterIdList(new SlideMasterId() { Id = (UInt32Value)2147483648U, RelationshipId = "rId1" });
            SlideIdList slideIdList1 = new SlideIdList(new SlideId() { Id = (UInt32Value)256U, RelationshipId = "rId2" });
            SlideSize slideSize1 = new SlideSize() { Cx = 9144000, Cy = 6858000, Type = SlideSizeValues.Screen4x3 };
            NotesSize notesSize1 = new NotesSize() { Cx = 6858000, Cy = 9144000 };
            DefaultTextStyle defaultTextStyle1 = new DefaultTextStyle();

           presentationPart.Presentation.Append(slideMasterIdList1, slideIdList1, slideSize1, notesSize1, defaultTextStyle1);

         // Code to create other parts of the presentation file goes here.
        }
Public Shared Sub CreatePresentation(ByVal filepath As String)

            ' Create a presentation at a specified file path. The presentation document type is pptx, by default.
            Dim presentationDoc As PresentationDocument = PresentationDocument.Create(filepath, PresentationDocumentType.Presentation)
            Dim presentationPart As PresentationPart = presentationDoc.AddPresentationPart()
            presentationPart.Presentation = New Presentation()

            CreatePresentationParts(presentationPart)

            ' Close the presentation handle.
            presentationDoc.Close()
        End Sub
Private Shared Sub CreatePresentationParts(ByVal presentationPart As PresentationPart)
            Dim slideMasterIdList1 As New SlideMasterIdList(New SlideMasterId() With { _
             .Id = DirectCast(2147483648UI, UInt32Value), _
             .RelationshipId = "rId1" _
            })
            Dim slideIdList1 As New SlideIdList(New SlideId() With { _
             .Id = DirectCast(256UI, UInt32Value), _
             .RelationshipId = "rId2" _
            })
            Dim slideSize1 As New SlideSize() With { _
             .Cx = 9144000, _
             .Cy = 6858000, _
             .Type = SlideSizeValues.Screen4x3 _
            }
            Dim notesSize1 As New NotesSize() With { _
             .Cx = 6858000, _
             .Cy = 9144000 _
            }
            Dim defaultTextStyle1 As New DefaultTextStyle()

            presentationPart.Presentation.Append(slideMasterIdList1, slideIdList1, slideSize1, notesSize1, defaultTextStyle1)

         ' Code to create other parts of the presentation file goes here.
        End Sub

生成的 PresentationML

Open XML SDK 2.0 代码运行时,以下 XML 将写入代码中引用的 PresentationML 文档。

<?xml version="1.0" encoding="utf-8" ?>
<p:presentation xmlns:p="https://schemas.openxmlformats.org/presentationml/2006/main">
 <p:sldMasterIdLst>
  <p:sldMasterId id="2147483648" r:id="rId1" xmlns:r="https://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
 </p:sldMasterIdLst>
 <p:sldIdLst>
  <p:sldId id="256" r:id="rId2" xmlns:r="https://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
 </p:sldIdLst>
 <p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>
 <p:notesSz cx="6858000" cy="9144000"/>
 <p:defaultTextStyle/>
</p:presentation>

请参阅

概念

关于 Open XML SDK 2.0 for Microsoft Office

如何:通过提供文件名创建演示文稿文档

如何:将新幻灯片插入到演示文稿

如何:从演示文稿中删除幻灯片

如何:在演示文稿文档中检索幻灯片的数量

如何:将主题应用于演示文稿