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

上次修改时间: 2011年6月29日

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

本主题演示如何使用 Open XML SDK 2.0 for Microsoft Office 中的类通过编程方式创建演示文稿文档。

编译本主题中的 C# 代码需要使用以下程序集指令。

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Drawing;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Presentation;
using P = DocumentFormat.OpenXml.Presentation;
using D = DocumentFormat.OpenXml.Drawing;

编译本主题中的 Visual Basic 代码需要使用以下程序集指令。

Imports DocumentFormat.OpenXml
Imports DocumentFormat.OpenXml.Packaging
Imports DocumentFormat.OpenXML.Drawing 
Imports DocumentFormat.OpenXml.Presentation
Imports P = DocumentFormat.OpenXml.Presentation
Imports D = DocumentFormat.OpenXml.Drawing

创建演示文稿

和 Open XML 标准定义的所有文件一样,演示文稿文件由包文件容器组成。用户在其文件资源管理器中可看到该文件;该文件的扩展名通常为 .pptx。包文件在 Open XML SDK 2.0 中由 PresentationDocument 类表示。演示文稿文档包含演示文稿部分和其他部分。演示文稿部分在 Open XML SDK 2.0 中由 PresentationPart 类表示,包含幻灯片演示文稿的基本 PresentationML 定义。PresentationML 是用于创建演示文稿的标记语言。每个包只能包含一个演示文稿部分,并且其根元素必须为 <presentation>。

用于创建新演示文稿文档包的 API 调用相对简单。第一步是调用 PresentationDocument 类的静态 Create(String, PresentationDocumentType) 方法,如 CreatePresentation 过程的此处所示,这是完成本文后面所示的代码示例的第一部分。CreatePresentation 代码调用 Create 方法的替代,该方法使用参数作为新文档的路径和要创建的演示文稿文档的类型。该参数中可用的演示文稿文档类型由 PresentationDocumentType 枚举值定义。

然后,代码调用 AddPresentationPart(),从而创建和返回 PresentationPart。创建 PresentationPart 类实例后,会为演示文稿添加新的根元素,方法是将 Presentation 属性设置为等于 Presentation 类的实例,该类是从对 Presentation 类构造函数的调用返回的。

为创建完整、可用和有效的演示文稿,代码还必须向演示文稿包添加许多其他部分。在示例代码中,这是通过调用名为 CreatePresentationsParts 的实用工具函数来处理的。然后该函数调用许多其他实用工具函数,这些函数一起创建基本演示文稿所需的所有演示文稿部分,包括幻灯片、幻灯片版式、幻灯片母版和主题部分。

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();
}

通过使用 Open XML SDK 2.0,可使用 PresentationML 元素所对应的强类型类来创建演示文稿结构和内容。可以在 DocumentFormat.OpenXml.Presentation 命名空间中找到这些类。下表列出了与演示文稿、幻灯片、幻灯片母版、幻灯片版式和主题元素相对应的类的名称。与主题元素相对应的类实际是 DocumentFormat.OpenXml.Drawing 命名空间的一部分。主题是所有 Open XML 标记语言共用的。

PresentationML 元素

Open XML SDK 2.0 类

<presentation>

Presentation

<sld>

Slide

<sldMaster>

SlideMaster

<sldLayout>

SlideLayout

<theme>

Theme

接下来的 PresentationML 代码是包含两张幻灯片的简单演示文稿的演示文稿部分(在文件 presentation.xml 中)中的 XML。

<p:presentation xmlns:p="…" … >
  <p:sldMasterIdLst>
    <p:sldMasterId xmlns:rel="http://…/relationships" rel:id="rId1"/>
  </p:sldMasterIdLst>
  <p:notesMasterIdLst>
    <p:notesMasterId xmlns:rel="http://…/relationships" rel:id="rId4"/>
  </p:notesMasterIdLst>
  <p:handoutMasterIdLst>
    <p:handoutMasterId xmlns:rel="http://…/relationships" rel:id="rId5"/>
  </p:handoutMasterIdLst>
  <p:sldIdLst>
    <p:sldId id="267" xmlns:rel="http://…/relationships" rel:id="rId2"/>
    <p:sldId id="256" xmlns:rel="http://…/relationships" rel:id="rId3"/>
  </p:sldIdLst>
  <p:sldSz cx="9144000" cy="6858000"/>
  <p:notesSz cx="6858000" cy="9144000"/>
</p:presentation>

示例代码

下面是给定文件路径时,用于创建演示文稿的完整 C# 代码示例。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Drawing;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Presentation;
using P = DocumentFormat.OpenXml.Presentation;
using D = DocumentFormat.OpenXml.Drawing;

namespace CreatePresentationDocument
{
    class Program
    {
        static void Main(string[] args)
        {
            string filepath = @"C:\Users\username\Documents\PresentationFromFilename.pptx";
            CreatePresentation(filepath);
        } 

        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);

           SlidePart slidePart1;
           SlideLayoutPart slideLayoutPart1;
           SlideMasterPart slideMasterPart1;
           ThemePart themePart1;

            
            slidePart1 = CreateSlidePart(presentationPart);
            slideLayoutPart1 = CreateSlideLayoutPart(slidePart1);
            slideMasterPart1 = CreateSlideMasterPart(slideLayoutPart1);
            themePart1 = CreateTheme(slideMasterPart1); 
  
            slideMasterPart1.AddPart(slideLayoutPart1, "rId1");
            presentationPart.AddPart(slideMasterPart1, "rId1");
            presentationPart.AddPart(themePart1, "rId5");            
        }

    private static SlidePart CreateSlidePart(PresentationPart presentationPart)        
        {
            SlidePart slidePart1 = presentationPart.AddNewPart<SlidePart>("rId2");
                slidePart1.Slide = new Slide(
                        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 ColorMapOverride(new MasterColorMapping()));
                return slidePart1;
         } 
   
      private static SlideLayoutPart CreateSlideLayoutPart(SlidePart slidePart1)
        {
            SlideLayoutPart slideLayoutPart1 = slidePart1.AddNewPart<SlideLayoutPart>("rId1");
            SlideLayout slideLayout = new SlideLayout(
            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 = "" },
                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()))))),
            new ColorMapOverride(new MasterColorMapping()));
            slideLayoutPart1.SlideLayout = slideLayout;
            return slideLayoutPart1;
         }

   private static SlideMasterPart CreateSlideMasterPart(SlideLayoutPart slideLayoutPart1)
   {
       SlideMasterPart slideMasterPart1 = slideLayoutPart1.AddNewPart<SlideMasterPart>("rId1");
       SlideMaster slideMaster = new SlideMaster(
       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 Placeholder 1" },
           new P.NonVisualShapeDrawingProperties(new ShapeLocks() { NoGrouping = true }),
           new ApplicationNonVisualDrawingProperties(new PlaceholderShape() { Type = PlaceholderValues.Title })),
         new P.ShapeProperties(),
         new P.TextBody(
           new BodyProperties(),
           new ListStyle(),
           new Paragraph())))),
       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 },
       new SlideLayoutIdList(new SlideLayoutId() { Id = (UInt32Value)2147483649U, RelationshipId = "rId1" }),
       new TextStyles(new TitleStyle(), new BodyStyle(), new OtherStyle()));
       slideMasterPart1.SlideMaster = slideMaster;

       return slideMasterPart1;
    }

   private static ThemePart CreateTheme(SlideMasterPart slideMasterPart1)
   {
       ThemePart themePart1 = slideMasterPart1.AddNewPart<ThemePart>("rId5");
       D.Theme theme1 = new D.Theme() { Name = "Office Theme" };

       D.ThemeElements themeElements1 = new D.ThemeElements(
       new D.ColorScheme(
         new D.Dark1Color(new D.SystemColor() { Val = D.SystemColorValues.WindowText, LastColor = "000000" }),
         new D.Light1Color(new D.SystemColor() { Val = D.SystemColorValues.Window, LastColor = "FFFFFF" }),
         new D.Dark2Color(new D.RgbColorModelHex() { Val = "1F497D" }),
         new D.Light2Color(new D.RgbColorModelHex() { Val = "EEECE1" }),
         new D.Accent1Color(new D.RgbColorModelHex() { Val = "4F81BD" }),
         new D.Accent2Color(new D.RgbColorModelHex() { Val = "C0504D" }),
         new D.Accent3Color(new D.RgbColorModelHex() { Val = "9BBB59" }),
         new D.Accent4Color(new D.RgbColorModelHex() { Val = "8064A2" }),
         new D.Accent5Color(new D.RgbColorModelHex() { Val = "4BACC6" }),
         new D.Accent6Color(new D.RgbColorModelHex() { Val = "F79646" }),
         new D.Hyperlink(new D.RgbColorModelHex() { Val = "0000FF" }),
         new D.FollowedHyperlinkColor(new D.RgbColorModelHex() { Val = "800080" })) { Name = "Office" },
         new D.FontScheme(
         new D.MajorFont(
         new D.LatinFont() { Typeface = "Calibri" },
         new D.EastAsianFont() { Typeface = "" },
         new D.ComplexScriptFont() { Typeface = "" }),
         new D.MinorFont(
         new D.LatinFont() { Typeface = "Calibri" },
         new D.EastAsianFont() { Typeface = "" },
         new D.ComplexScriptFont() { Typeface = "" })) { Name = "Office" },
         new D.FormatScheme(
         new D.FillStyleList(
         new D.SolidFill(new D.SchemeColor() { Val = D.SchemeColorValues.PhColor }),
         new D.GradientFill(
           new D.GradientStopList(
           new D.GradientStop(new D.SchemeColor(new D.Tint() { Val = 50000 },
             new D.SaturationModulation() { Val = 300000 }) { Val = D.SchemeColorValues.PhColor }) { Position = 0 },
           new D.GradientStop(new D.SchemeColor(new D.Tint() { Val = 37000 },
            new D.SaturationModulation() { Val = 300000 }) { Val = D.SchemeColorValues.PhColor }) { Position = 35000 },
           new D.GradientStop(new D.SchemeColor(new D.Tint() { Val = 15000 },
            new D.SaturationModulation() { Val = 350000 }) { Val = D.SchemeColorValues.PhColor }) { Position = 100000 }
           ),
           new D.LinearGradientFill() { Angle = 16200000, Scaled = true }),
         new D.NoFill(),
         new D.PatternFill(),
         new D.GroupFill()),
         new D.LineStyleList(
         new D.Outline(
           new D.SolidFill(
           new D.SchemeColor(
             new D.Shade() { Val = 95000 },
             new D.SaturationModulation() { Val = 105000 }) { Val = D.SchemeColorValues.PhColor }),
           new D.PresetDash() { Val = D.PresetLineDashValues.Solid })
         {
             Width = 9525,
             CapType = D.LineCapValues.Flat,
             CompoundLineType = D.CompoundLineValues.Single,
             Alignment = D.PenAlignmentValues.Center
         },
         new D.Outline(
           new D.SolidFill(
           new D.SchemeColor(
             new D.Shade() { Val = 95000 },
             new D.SaturationModulation() { Val = 105000 }) { Val = D.SchemeColorValues.PhColor }),
           new D.PresetDash() { Val = D.PresetLineDashValues.Solid })
         {
             Width = 9525,
             CapType = D.LineCapValues.Flat,
             CompoundLineType = D.CompoundLineValues.Single,
             Alignment = D.PenAlignmentValues.Center
         },
         new D.Outline(
           new D.SolidFill(
           new D.SchemeColor(
             new D.Shade() { Val = 95000 },
             new D.SaturationModulation() { Val = 105000 }) { Val = D.SchemeColorValues.PhColor }),
           new D.PresetDash() { Val = D.PresetLineDashValues.Solid })
         {
             Width = 9525,
             CapType = D.LineCapValues.Flat,
             CompoundLineType = D.CompoundLineValues.Single,
             Alignment = D.PenAlignmentValues.Center
         }),
         new D.EffectStyleList(
         new D.EffectStyle(
           new D.EffectList(
           new D.OuterShadow(
             new D.RgbColorModelHex(
             new D.Alpha() { Val = 38000 }) { Val = "000000" }) { BlurRadius = 40000L, Distance = 20000L, Direction = 5400000, RotateWithShape = false })),
         new D.EffectStyle(
           new D.EffectList(
           new D.OuterShadow(
             new D.RgbColorModelHex(
             new D.Alpha() { Val = 38000 }) { Val = "000000" }) { BlurRadius = 40000L, Distance = 20000L, Direction = 5400000, RotateWithShape = false })),
         new D.EffectStyle(
           new D.EffectList(
           new D.OuterShadow(
             new D.RgbColorModelHex(
             new D.Alpha() { Val = 38000 }) { Val = "000000" }) { BlurRadius = 40000L, Distance = 20000L, Direction = 5400000, RotateWithShape = false }))),
         new D.BackgroundFillStyleList(
         new D.SolidFill(new D.SchemeColor() { Val = D.SchemeColorValues.PhColor }),
         new D.GradientFill(
           new D.GradientStopList(
           new D.GradientStop(
             new D.SchemeColor(new D.Tint() { Val = 50000 },
               new D.SaturationModulation() { Val = 300000 }) { Val = D.SchemeColorValues.PhColor }) { Position = 0 },
           new D.GradientStop(
             new D.SchemeColor(new D.Tint() { Val = 50000 },
               new D.SaturationModulation() { Val = 300000 }) { Val = D.SchemeColorValues.PhColor }) { Position = 0 },
           new D.GradientStop(
             new D.SchemeColor(new D.Tint() { Val = 50000 },
               new D.SaturationModulation() { Val = 300000 }) { Val = D.SchemeColorValues.PhColor }) { Position = 0 }),
           new D.LinearGradientFill() { Angle = 16200000, Scaled = true }),
         new D.GradientFill(
           new D.GradientStopList(
           new D.GradientStop(
             new D.SchemeColor(new D.Tint() { Val = 50000 },
               new D.SaturationModulation() { Val = 300000 }) { Val = D.SchemeColorValues.PhColor }) { Position = 0 },
           new D.GradientStop(
             new D.SchemeColor(new D.Tint() { Val = 50000 },
               new D.SaturationModulation() { Val = 300000 }) { Val = D.SchemeColorValues.PhColor }) { Position = 0 }),
           new D.LinearGradientFill() { Angle = 16200000, Scaled = true }))) { Name = "Office" });

       theme1.Append(themeElements1);
       theme1.Append(new D.ObjectDefaults());
       theme1.Append(new D.ExtraColorSchemeList());

       themePart1.Theme = theme1;
       return themePart1;

         }
    } 
} 

下面是给定文件路径时,用于创建演示文稿的完整 VB.Net 代码示例。

Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports DocumentFormat.OpenXml
Imports DocumentFormat.OpenXml.Drawing
Imports DocumentFormat.OpenXml.Packaging
Imports DocumentFormat.OpenXml.Presentation
Imports P = DocumentFormat.OpenXml.Presentation
Imports D = DocumentFormat.OpenXml.Drawing


Namespace CreatePresentationDocument
    Class Program
        Public Shared Sub Main(ByVal args As String())

            Dim filepath As String = "C:\Users\username\Documents\PresentationFromFilename.pptx"
            CreatePresentation(filepath)

        End Sub

        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 = CType(2147483648UI, UInt32Value), _
             .RelationshipId = "rId1" _
            })
            Dim slideIdList1 As New SlideIdList(New SlideId() With { _
             .Id = CType(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()

            Dim slidePart1 As SlidePart
            Dim slideLayoutPart1 As SlideLayoutPart
            Dim slideMasterPart1 As SlideMasterPart
            Dim themePart1 As ThemePart

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

            slidePart1 = CreateSlidePart(presentationPart)
            slideLayoutPart1 = CreateSlideLayoutPart(slidePart1)
            slideMasterPart1 = CreateSlideMasterPart(slideLayoutPart1)
            themePart1 = CreateTheme(slideMasterPart1)

            slideMasterPart1.AddPart(slideLayoutPart1, "rId1")
            presentationPart.AddPart(slideMasterPart1, "rId1")
            presentationPart.AddPart(themePart1, "rId5")
        End Sub

        Private Shared Function CreateSlidePart(ByVal presentationPart As PresentationPart) As SlidePart
            Dim slidePart1 As SlidePart = presentationPart.AddNewPart(Of SlidePart)("rId2")
            slidePart1.Slide = New Slide(New CommonSlideData(New ShapeTree(New P.NonVisualGroupShapeProperties(New P.NonVisualDrawingProperties() With { _
             .Id = CType(1UI, UInt32Value), _
              .Name = "" _
            }, New P.NonVisualGroupShapeDrawingProperties(), New ApplicationNonVisualDrawingProperties()), New GroupShapeProperties(New TransformGroup()), New P.Shape(New P.NonVisualShapeProperties(New P.NonVisualDrawingProperties() With { _
              .Id = CType(2UI, UInt32Value), _
              .Name = "Title 1" _
            }, New P.NonVisualShapeDrawingProperties(New ShapeLocks() With { _
              .NoGrouping = True _
            }), New ApplicationNonVisualDrawingProperties(New PlaceholderShape())), New P.ShapeProperties(), New P.TextBody(New BodyProperties(), New ListStyle(), New Paragraph(New EndParagraphRunProperties() With { _
              .Language = "en-US" _
            }))))), New ColorMapOverride(New MasterColorMapping()))
            Return slidePart1
        End Function

        Private Shared Function CreateSlideLayoutPart(ByVal slidePart1 As SlidePart) As SlideLayoutPart
            Dim slideLayoutPart1 As SlideLayoutPart = slidePart1.AddNewPart(Of SlideLayoutPart)("rId1")
            Dim slideLayout As New SlideLayout(New CommonSlideData(New ShapeTree(New P.NonVisualGroupShapeProperties(New P.NonVisualDrawingProperties() With { _
              .Id = CType(1UI, UInt32Value), _
              .Name = "" _
            }, New P.NonVisualGroupShapeDrawingProperties(), New ApplicationNonVisualDrawingProperties()), _
                New GroupShapeProperties(New TransformGroup()), New P.Shape(New P.NonVisualShapeProperties(New P.NonVisualDrawingProperties() With { _
              .Id = CType(2UI, UInt32Value), _
              .Name = "" _
            }, New P.NonVisualShapeDrawingProperties(New ShapeLocks() With { _
              .NoGrouping = True _
            }), New ApplicationNonVisualDrawingProperties(New PlaceholderShape())), New P.ShapeProperties(), New P.TextBody(New BodyProperties(), _
                New ListStyle(), New Paragraph(New EndParagraphRunProperties()))))), New ColorMapOverride(New MasterColorMapping()))
            slideLayoutPart1.SlideLayout = slideLayout
            Return slideLayoutPart1
        End Function

        Private Shared Function CreateSlideMasterPart(ByVal slideLayoutPart1 As SlideLayoutPart) As SlideMasterPart
            Dim slideMasterPart1 As SlideMasterPart = slideLayoutPart1.AddNewPart(Of SlideMasterPart)("rId1")
            Dim slideMaster As New SlideMaster(New CommonSlideData(New ShapeTree(New P.NonVisualGroupShapeProperties(New P.NonVisualDrawingProperties() With { _
              .Id = CType(1UI, UInt32Value), _
              .Name = "" _
            }, New P.NonVisualGroupShapeDrawingProperties(), New ApplicationNonVisualDrawingProperties()), _
                New GroupShapeProperties(New TransformGroup()), New P.Shape(New P.NonVisualShapeProperties(New P.NonVisualDrawingProperties() With { _
              .Id = CType(2UI, UInt32Value), _
              .Name = "Title Placeholder 1" _
            }, New P.NonVisualShapeDrawingProperties(New ShapeLocks() With { _
              .NoGrouping = True _
            }), New ApplicationNonVisualDrawingProperties(New PlaceholderShape() With { _
              .Type = PlaceholderValues.Title _
            })), New P.ShapeProperties(), New P.TextBody(New BodyProperties(), New ListStyle(), New Paragraph())))), New P.ColorMap() With { _
              .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 _
            }, New SlideLayoutIdList(New SlideLayoutId() With { _
              .Id = CType(2147483649UI, UInt32Value), _
              .RelationshipId = "rId1" _
            }), New TextStyles(New TitleStyle(), New BodyStyle(), New OtherStyle()))
            slideMasterPart1.SlideMaster = slideMaster

            Return slideMasterPart1
        End Function

        Private Shared Function CreateTheme(ByVal slideMasterPart1 As SlideMasterPart) As ThemePart
            Dim themePart1 As ThemePart = slideMasterPart1.AddNewPart(Of ThemePart)("rId5")
            Dim theme1 As New D.Theme() With { _
              .Name = "Office Theme" _
            }

            Dim themeElements1 As New D.ThemeElements(New D.ColorScheme(New D.Dark1Color(New D.SystemColor() With { _
              .Val = D.SystemColorValues.WindowText, _
              .LastColor = "000000" _
            }), New D.Light1Color(New D.SystemColor() With { _
              .Val = D.SystemColorValues.Window, _
              .LastColor = "FFFFFF" _
            }), New D.Dark2Color(New D.RgbColorModelHex() With { _
              .Val = "1F497D" _
            }), New D.Light2Color(New D.RgbColorModelHex() With { _
              .Val = "EEECE1" _
            }), New D.Accent1Color(New D.RgbColorModelHex() With { _
              .Val = "4F81BD" _
            }), New D.Accent2Color(New D.RgbColorModelHex() With { _
              .Val = "C0504D" _
            }), _
             New D.Accent3Color(New D.RgbColorModelHex() With { _
              .Val = "9BBB59" _
            }), New D.Accent4Color(New D.RgbColorModelHex() With { _
              .Val = "8064A2" _
            }), New D.Accent5Color(New D.RgbColorModelHex() With { _
              .Val = "4BACC6" _
            }), New D.Accent6Color(New D.RgbColorModelHex() With { _
              .Val = "F79646" _
            }), New D.Hyperlink(New D.RgbColorModelHex() With { _
              .Val = "0000FF" _
            }), New D.FollowedHyperlinkColor(New D.RgbColorModelHex() With { _
              .Val = "800080" _
            })) With { _
              .Name = "Office" _
            }, New D.FontScheme(New D.MajorFont(New D.LatinFont() With { _
              .Typeface = "Calibri" _
            }, New D.EastAsianFont() With { _
              .Typeface = "" _
            }, New D.ComplexScriptFont() With { _
              .Typeface = "" _
            }), New D.MinorFont(New D.LatinFont() With { _
              .Typeface = "Calibri" _
            }, New D.EastAsianFont() With { _
              .Typeface = "" _
            }, New D.ComplexScriptFont() With { _
              .Typeface = "" _
            })) With { _
              .Name = "Office" _
            }, New D.FormatScheme(New D.FillStyleList(New D.SolidFill(New D.SchemeColor() With { _
              .Val = D.SchemeColorValues.PhColor _
            }), New D.GradientFill(New D.GradientStopList(New D.GradientStop(New D.SchemeColor(New D.Tint() With { _
              .Val = 50000 _
            }, New D.SaturationModulation() With { _
              .Val = 300000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }) With { _
              .Position = 0 _
            }, New D.GradientStop(New D.SchemeColor(New D.Tint() With { _
              .Val = 37000 _
            }, New D.SaturationModulation() With { _
              .Val = 300000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }) With { _
              .Position = 35000 _
            }, New D.GradientStop(New D.SchemeColor(New D.Tint() With { _
              .Val = 15000 _
            }, New D.SaturationModulation() With { _
              .Val = 350000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }) With { _
              .Position = 100000 _
            }), New D.LinearGradientFill() With { _
              .Angle = 16200000, _
              .Scaled = True _
            }), New D.NoFill(), New D.PatternFill(), New D.GroupFill()), New D.LineStyleList(New D.Outline(New D.SolidFill(New D.SchemeColor(New D.Shade() With { _
              .Val = 95000 _
            }, New D.SaturationModulation() With { _
              .Val = 105000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }), New D.PresetDash() With { _
              .Val = D.PresetLineDashValues.Solid _
            }) With { _
              .Width = 9525, _
              .CapType = D.LineCapValues.Flat, _
              .CompoundLineType = D.CompoundLineValues.[Single], _
              .Alignment = D.PenAlignmentValues.Center _
            }, New D.Outline(New D.SolidFill(New D.SchemeColor(New D.Shade() With { _
              .Val = 95000 _
            }, New D.SaturationModulation() With { _
              .Val = 105000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }), New D.PresetDash() With { _
              .Val = D.PresetLineDashValues.Solid _
            }) With { _
              .Width = 9525, _
              .CapType = D.LineCapValues.Flat, _
              .CompoundLineType = D.CompoundLineValues.[Single], _
              .Alignment = D.PenAlignmentValues.Center _
            }, New D.Outline(New D.SolidFill(New D.SchemeColor(New D.Shade() With { _
              .Val = 95000 _
            }, New D.SaturationModulation() With { _
              .Val = 105000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }), New D.PresetDash() With { _
              .Val = D.PresetLineDashValues.Solid _
            }) With { _
              .Width = 9525, _
              .CapType = D.LineCapValues.Flat, _
              .CompoundLineType = D.CompoundLineValues.[Single], _
              .Alignment = D.PenAlignmentValues.Center _
            }), New D.EffectStyleList(New D.EffectStyle(New D.EffectList(New D.OuterShadow(New D.RgbColorModelHex(New D.Alpha() With { _
              .Val = 38000 _
            }) With { _
              .Val = "000000" _
            }) With { _
              .BlurRadius = 40000L, _
              .Distance = 20000L, _
              .Direction = 5400000, _
              .RotateWithShape = False _
            })), New D.EffectStyle(New D.EffectList(New D.OuterShadow(New D.RgbColorModelHex(New D.Alpha() With { _
              .Val = 38000 _
            }) With { _
              .Val = "000000" _
            }) With { _
              .BlurRadius = 40000L, _
              .Distance = 20000L, _
              .Direction = 5400000, _
              .RotateWithShape = False _
            })), New D.EffectStyle(New D.EffectList(New D.OuterShadow(New D.RgbColorModelHex(New D.Alpha() With { _
              .Val = 38000 _
            }) With { _
              .Val = "000000" _
            }) With { _
              .BlurRadius = 40000L, _
              .Distance = 20000L, _
              .Direction = 5400000, _
              .RotateWithShape = False _
            }))), New D.BackgroundFillStyleList(New D.SolidFill(New D.SchemeColor() With { _
              .Val = D.SchemeColorValues.PhColor _
            }), New D.GradientFill(New D.GradientStopList(New D.GradientStop(New D.SchemeColor(New D.Tint() With { _
              .Val = 50000 _
            }, New D.SaturationModulation() With { _
              .Val = 300000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }) With { _
              .Position = 0 _
            }, New D.GradientStop(New D.SchemeColor(New D.Tint() With { _
              .Val = 50000 _
            }, New D.SaturationModulation() With { _
              .Val = 300000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }) With { _
              .Position = 0 _
            }, New D.GradientStop(New D.SchemeColor(New D.Tint() With { _
              .Val = 50000 _
            }, New D.SaturationModulation() With { _
              .Val = 300000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }) With { _
              .Position = 0 _
            }), New D.LinearGradientFill() With { _
              .Angle = 16200000, _
              .Scaled = True _
            }), New D.GradientFill(New D.GradientStopList(New D.GradientStop(New D.SchemeColor(New D.Tint() With { _
              .Val = 50000 _
            }, New D.SaturationModulation() With { _
              .Val = 300000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }) With { _
              .Position = 0 _
            }, New D.GradientStop(New D.SchemeColor(New D.Tint() With { _
              .Val = 50000 _
            }, New D.SaturationModulation() With { _
              .Val = 300000 _
            }) With { _
              .Val = D.SchemeColorValues.PhColor _
            }) With { _
              .Position = 0 _
            }), New D.LinearGradientFill() With { _
              .Angle = 16200000, _
              .Scaled = True _
            }))) With { _
              .Name = "Office" _
            })

            theme1.Append(themeElements1)
            theme1.Append(New D.ObjectDefaults())
            theme1.Append(New D.ExtraColorSchemeList())

            themePart1.Theme = theme1
            Return themePart1

        End Function

    End Class

End Namespace

请参阅

引用

Class Library Reference

概念

关于 Open XML SDK 2.0 for Microsoft Office

PresentationML 文档的结构

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

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

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

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