OfficeIMO

API Reference

Class

PowerPointPresentation

Namespace OfficeIMO.PowerPoint
Assembly OfficeIMO.PowerPoint
Implements
IDisposable
Modifiers sealed

Represents a PowerPoint presentation providing basic create, open and save operations.

Inheritance

  • Object
  • PowerPointPresentation

Methods

public Void AddColumnGuides(Int32 columnCount, Int64 marginEmus, Int64 gutterEmus, Boolean includeOuterEdges = true, Boolean clearExisting = false) #
Returns: Void

Adds vertical column guides based on a grid definition.

Parameters

columnCount System.Int32 requiredposition: 0
marginEmus System.Int64 requiredposition: 1
gutterEmus System.Int64 requiredposition: 2
includeOuterEdges System.Boolean = true optionalposition: 3
clearExisting System.Boolean = false optionalposition: 4
public Void AddColumnGuidesCm(Int32 columnCount, Double marginCm, Double gutterCm, Boolean includeOuterEdges = true, Boolean clearExisting = false) #
Returns: Void

Adds vertical column guides using centimeters.

Parameters

columnCount System.Int32 requiredposition: 0
marginCm System.Double requiredposition: 1
gutterCm System.Double requiredposition: 2
includeOuterEdges System.Boolean = true optionalposition: 3
clearExisting System.Boolean = false optionalposition: 4
public Void AddGuide(PowerPointGuideOrientation orientation, Int64 positionEmus) #
Returns: Void

Adds a guide to slide view.

Parameters

orientation OfficeIMO.PowerPoint.PowerPointGuideOrientation requiredposition: 0
positionEmus System.Int64 requiredposition: 1
public Void AddGuideCm(PowerPointGuideOrientation orientation, Double positionCm) #
Returns: Void

Adds a guide using centimeter measurements.

Parameters

orientation OfficeIMO.PowerPoint.PowerPointGuideOrientation requiredposition: 0
positionCm System.Double requiredposition: 1
public Void AddGuideInches(PowerPointGuideOrientation orientation, Double positionInches) #
Returns: Void

Adds a guide using inch measurements.

Parameters

orientation OfficeIMO.PowerPoint.PowerPointGuideOrientation requiredposition: 0
positionInches System.Double requiredposition: 1
public Void AddGuidePoints(PowerPointGuideOrientation orientation, Double positionPoints) #
Returns: Void

Adds a guide using point measurements.

Parameters

orientation OfficeIMO.PowerPoint.PowerPointGuideOrientation requiredposition: 0
positionPoints System.Double requiredposition: 1
public Void AddRowGuides(Int32 rowCount, Int64 marginEmus, Int64 gutterEmus, Boolean includeOuterEdges = true, Boolean clearExisting = false) #
Returns: Void

Adds horizontal row guides based on a grid definition.

Parameters

rowCount System.Int32 requiredposition: 0
marginEmus System.Int64 requiredposition: 1
gutterEmus System.Int64 requiredposition: 2
includeOuterEdges System.Boolean = true optionalposition: 3
clearExisting System.Boolean = false optionalposition: 4
public Void AddRowGuidesCm(Int32 rowCount, Double marginCm, Double gutterCm, Boolean includeOuterEdges = true, Boolean clearExisting = false) #
Returns: Void

Adds horizontal row guides using centimeters.

Parameters

rowCount System.Int32 requiredposition: 0
marginCm System.Double requiredposition: 1
gutterCm System.Double requiredposition: 2
includeOuterEdges System.Boolean = true optionalposition: 3
clearExisting System.Boolean = false optionalposition: 4
public PowerPointSectionInfo AddSection(String name, Int32 startSlideIndex) #
Returns: PowerPointSectionInfo

Adds a new section starting at the specified slide index.

Parameters

name System.String requiredposition: 0
startSlideIndex System.Int32 requiredposition: 1
AddSlide 3 overloads
public PowerPointSlide AddSlide(SlideLayoutValues layoutType, Int32 masterIndex = 0) #
Returns: PowerPointSlide

Adds a slide using a layout type.

Parameters

arg1 DocumentFormat.OpenXml.Presentation.SlideLayoutValues requiredposition: 0
arg2 System.Int32 = 0 optionalposition: 1
public PowerPointSlide AddSlide(String layoutName, Int32 masterIndex = 0, Boolean ignoreCase = true) #
Returns: PowerPointSlide

Adds a slide using a layout name.

Parameters

layoutName System.String requiredposition: 0
masterIndex System.Int32 = 0 optionalposition: 1
ignoreCase System.Boolean = true optionalposition: 2
public PowerPointSlide AddSlide(Int32 masterIndex = 0, Int32 layoutIndex = 0) #
Returns: PowerPointSlide

Adds a new slide using the specified master and layout indexes.

Parameters

masterIndex System.Int32 = 0 optionalposition: 0
Index of the slide master.
layoutIndex System.Int32 = 0 optionalposition: 1
Index of the slide layout.
public PowerPointFluentPresentation AsFluent() #
Returns: PowerPointFluentPresentation

Creates a fluent wrapper for this presentation.

public Void ClearGuides() #
Returns: Void

Clears all guides from slide view.

Create 2 overloads
public static PowerPointPresentation Create(String filePath) #
Returns: PowerPointPresentation

Creates a new PowerPoint presentation at the specified file path.

Parameters

filePath System.String requiredposition: 0
Path where the presentation file will be created.
public static PowerPointPresentation Create(Stream stream, Boolean autoSave = true) #
Returns: PowerPointPresentation

Creates a new PowerPoint presentation in memory and optionally persists it to the provided stream on dispose.

Parameters

stream System.IO.Stream requiredposition: 0
Destination stream for the presentation package.
autoSave System.Boolean = true optionalposition: 1
When true, writes the package back to the stream on dispose.
public virtual Void Dispose() #
Returns: Void
public PowerPointSlide DuplicateSlide(Int32 index, Nullable<Int32> insertAt = null) #
Returns: PowerPointSlide

Duplicates a slide and inserts it into the presentation.

Parameters

index System.Int32 requiredposition: 0
Index of the slide to duplicate.
insertAt System.Nullable{System.Int32} = null optionalposition: 1
Index where the duplicate should be inserted. Defaults to index + 1.
public PowerPointTextBox EnsureLayoutPlaceholderTextBox(Int32 masterIndex, Int32 layoutIndex, PlaceholderValues placeholderType, Nullable<UInt32> index = null, Nullable<PowerPointLayoutBox> bounds = null, String name = null) #
Returns: PowerPointTextBox

Ensures a layout placeholder textbox exists, creating it if missing.

Parameters

masterIndex System.Int32 requiredposition: 0
layoutIndex System.Int32 requiredposition: 1
placeholderType DocumentFormat.OpenXml.Presentation.PlaceholderValues requiredposition: 2
index System.Nullable{System.UInt32} = null optionalposition: 3
bounds System.Nullable{OfficeIMO.PowerPoint.PowerPointLayoutBox} = null optionalposition: 4
name System.String = null optionalposition: 5
public IReadOnlyList<PowerPointGuideInfo> GetGuides() #
Returns: IReadOnlyList<PowerPointGuideInfo>

Returns the current guides defined for slide view.

GetLayoutIndex 2 overloads
public Int32 GetLayoutIndex(SlideLayoutValues layoutType, Int32 masterIndex = 0) #
Returns: Int32

Finds a layout index by layout type.

Parameters

layoutType DocumentFormat.OpenXml.Presentation.SlideLayoutValues requiredposition: 0
masterIndex System.Int32 = 0 optionalposition: 1
public Int32 GetLayoutIndex(String layoutName, Int32 masterIndex = 0, Boolean ignoreCase = true) #
Returns: Int32

Finds a layout index by layout name.

Parameters

layoutName System.String requiredposition: 0
masterIndex System.Int32 = 0 optionalposition: 1
ignoreCase System.Boolean = true optionalposition: 2
public PowerPointTextBox GetLayoutPlaceholderTextBox(Int32 masterIndex, Int32 layoutIndex, PlaceholderValues placeholderType, Nullable<UInt32> index = null) #
Returns: PowerPointTextBox

Retrieves a layout placeholder textbox for a master/layout pair.

Parameters

masterIndex System.Int32 requiredposition: 0
layoutIndex System.Int32 requiredposition: 1
placeholderType DocumentFormat.OpenXml.Presentation.PlaceholderValues requiredposition: 2
index System.Nullable{System.UInt32} = null optionalposition: 3
public IReadOnlyList<PowerPointSectionInfo> GetSections() #
Returns: IReadOnlyList<PowerPointSectionInfo>

Returns the sections defined in the presentation.

public IReadOnlyList<PowerPointSlideLayoutInfo> GetSlideLayouts(Int32 masterIndex = 0) #
Returns: IReadOnlyList<PowerPointSlideLayoutInfo>

Returns the layouts available for a slide master.

Parameters

masterIndex System.Int32 = 0 optionalposition: 0
public String GetThemeColor(PowerPointThemeColor color, Int32 masterIndex = 0) #
Returns: String

Gets a theme color value in hex format (e.g. "FF0000").

Parameters

color OfficeIMO.PowerPoint.PowerPointThemeColor requiredposition: 0
masterIndex System.Int32 = 0 optionalposition: 1
public IReadOnlyDictionary<PowerPointThemeColor, String> GetThemeColors(Int32 masterIndex = 0) #
Returns: IReadOnlyDictionary<PowerPointThemeColor, String>

Returns the theme colors that are defined on the master.

Parameters

masterIndex System.Int32 = 0 optionalposition: 0
public PowerPointThemeFontSet GetThemeFonts(Int32 masterIndex = 0) #
Returns: PowerPointThemeFontSet

Gets the major/minor fonts (Latin, East Asian, and complex script).

Parameters

masterIndex System.Int32 = 0 optionalposition: 0
public PowerPointThemeFontInfo GetThemeLatinFonts(Int32 masterIndex = 0) #
Returns: PowerPointThemeFontInfo

Gets the major/minor Latin fonts for the theme.

Parameters

masterIndex System.Int32 = 0 optionalposition: 0
public PowerPointSlide ImportSlide(PowerPointPresentation sourcePresentation, Int32 sourceIndex, Nullable<Int32> insertAt = null) #
Returns: PowerPointSlide

Imports a slide from another presentation and inserts it into the current presentation.

Parameters

sourcePresentation OfficeIMO.PowerPoint.PowerPointPresentation requiredposition: 0
Presentation to import from.
sourceIndex System.Int32 requiredposition: 1
Index of the slide to import.
insertAt System.Nullable{System.Int32} = null optionalposition: 2
Index where the imported slide should be inserted. Defaults to end.
public Void MoveSlide(Int32 fromIndex, Int32 toIndex) #
Returns: Void

Moves a slide from one index to another.

Parameters

fromIndex System.Int32 requiredposition: 0
Current index of the slide.
toIndex System.Int32 requiredposition: 1
Destination index of the slide.
Open 2 overloads
public static PowerPointPresentation Open(String filePath) #
Returns: PowerPointPresentation

Opens an existing PowerPoint presentation.

Parameters

filePath System.String requiredposition: 0
Path of the presentation file to open.
public static PowerPointPresentation Open(Stream stream, Boolean readOnly = false, Boolean autoSave = false) #
Returns: PowerPointPresentation

Opens a PowerPoint presentation from a stream.

Parameters

stream System.IO.Stream requiredposition: 0
Source stream containing the presentation package.
readOnly System.Boolean = false optionalposition: 1
Open the document in read-only mode.
autoSave System.Boolean = false optionalposition: 2
When true, writes the package back to the stream on dispose.
public static PowerPointPresentation OpenRead(String filePath) #
Returns: PowerPointPresentation

Opens an existing PowerPoint presentation in read-only mode (no writes, no repairs).

Parameters

filePath System.String requiredposition: 0
Path of the presentation file to open.
public Void RemoveSlide(Int32 index) #
Returns: Void

Removes the slide at the specified index.

Parameters

index System.Int32 requiredposition: 0
Index of the slide to remove.
public Boolean RenameSection(String name, String newName, Boolean ignoreCase = true) #
Returns: Boolean

Renames the first section matching the provided name.

Parameters

name System.String requiredposition: 0
newName System.String requiredposition: 1
ignoreCase System.Boolean = true optionalposition: 2
public Int32 ReplaceText(String oldValue, String newValue, Boolean includeTables = true, Boolean includeNotes = false) #
Returns: Int32

Replaces text across all slides.

Parameters

oldValue System.String requiredposition: 0
newValue System.String requiredposition: 1
includeTables System.Boolean = true optionalposition: 2
includeNotes System.Boolean = false optionalposition: 3
Save 2 overloads
public Void Save() #
Returns: Void

Saves all pending changes to the underlying package.

public Void Save(Stream destination) #
Returns: Void

Saves the presentation to the provided stream.

Parameters

destination System.IO.Stream requiredposition: 0
public Void SetGridSpacing(Int64 xEmus, Int64 yEmus) #
Returns: Void

Sets grid spacing in EMUs.

Parameters

xEmus System.Int64 requiredposition: 0
yEmus System.Int64 requiredposition: 1
public Void SetGridSpacingCm(Double xCm, Double yCm) #
Returns: Void

Sets grid spacing in centimeters.

Parameters

xCm System.Double requiredposition: 0
yCm System.Double requiredposition: 1
public Void SetGridSpacingInches(Double xInches, Double yInches) #
Returns: Void

Sets grid spacing in inches.

Parameters

xInches System.Double requiredposition: 0
yInches System.Double requiredposition: 1
public Void SetGridSpacingPoints(Double xPoints, Double yPoints) #
Returns: Void

Sets grid spacing in points.

Parameters

xPoints System.Double requiredposition: 0
yPoints System.Double requiredposition: 1
public Void SetGuides(IEnumerable<PowerPointGuideInfo> guides) #
Returns: Void

Sets the guide list to the provided collection.

Parameters

guides System.Collections.Generic.IEnumerable{OfficeIMO.PowerPoint.PowerPointGuideInfo} requiredposition: 0
public Void SetLayoutPlaceholderBounds(Int32 masterIndex, Int32 layoutIndex, PlaceholderValues placeholderType, PowerPointLayoutBox bounds, Nullable<UInt32> index = null, Boolean createIfMissing = false) #
Returns: Void

Sets layout placeholder bounds.

Parameters

masterIndex System.Int32 requiredposition: 0
layoutIndex System.Int32 requiredposition: 1
placeholderType DocumentFormat.OpenXml.Presentation.PlaceholderValues requiredposition: 2
bounds OfficeIMO.PowerPoint.PowerPointLayoutBox requiredposition: 3
index System.Nullable{System.UInt32} = null optionalposition: 4
createIfMissing System.Boolean = false optionalposition: 5
public Void SetLayoutPlaceholderTextMarginsCm(Int32 masterIndex, Int32 layoutIndex, PlaceholderValues placeholderType, Double leftCm, Double topCm, Double rightCm, Double bottomCm, Nullable<UInt32> index = null, Boolean createIfMissing = false) #
Returns: Void

Sets layout placeholder text margins in centimeters.

Parameters

masterIndex System.Int32 requiredposition: 0
layoutIndex System.Int32 requiredposition: 1
placeholderType DocumentFormat.OpenXml.Presentation.PlaceholderValues requiredposition: 2
leftCm System.Double requiredposition: 3
topCm System.Double requiredposition: 4
rightCm System.Double requiredposition: 5
bottomCm System.Double requiredposition: 6
index System.Nullable{System.UInt32} = null optionalposition: 7
createIfMissing System.Boolean = false optionalposition: 8
public Void SetLayoutPlaceholderTextMarginsInches(Int32 masterIndex, Int32 layoutIndex, PlaceholderValues placeholderType, Double leftInches, Double topInches, Double rightInches, Double bottomInches, Nullable<UInt32> index = null, Boolean createIfMissing = false) #
Returns: Void

Sets layout placeholder text margins in inches.

Parameters

masterIndex System.Int32 requiredposition: 0
layoutIndex System.Int32 requiredposition: 1
placeholderType DocumentFormat.OpenXml.Presentation.PlaceholderValues requiredposition: 2
leftInches System.Double requiredposition: 3
topInches System.Double requiredposition: 4
rightInches System.Double requiredposition: 5
bottomInches System.Double requiredposition: 6
index System.Nullable{System.UInt32} = null optionalposition: 7
createIfMissing System.Boolean = false optionalposition: 8
public Void SetLayoutPlaceholderTextMarginsPoints(Int32 masterIndex, Int32 layoutIndex, PlaceholderValues placeholderType, Double leftPoints, Double topPoints, Double rightPoints, Double bottomPoints, Nullable<UInt32> index = null, Boolean createIfMissing = false) #
Returns: Void

Sets layout placeholder text margins in points.

Parameters

masterIndex System.Int32 requiredposition: 0
layoutIndex System.Int32 requiredposition: 1
placeholderType DocumentFormat.OpenXml.Presentation.PlaceholderValues requiredposition: 2
leftPoints System.Double requiredposition: 3
topPoints System.Double requiredposition: 4
rightPoints System.Double requiredposition: 5
bottomPoints System.Double requiredposition: 6
index System.Nullable{System.UInt32} = null optionalposition: 7
createIfMissing System.Boolean = false optionalposition: 8
public Void SetLayoutPlaceholderTextStyle(Int32 masterIndex, Int32 layoutIndex, PlaceholderValues placeholderType, PowerPointTextStyle style, Nullable<UInt32> index = null, Nullable<Int32> level = null, Nullable<Char> bulletChar = null, Nullable<TextAutoNumberSchemeValues> numbering = null, Boolean createIfMissing = false) #
Returns: Void

Sets layout placeholder text styling and optional bullet settings.

Parameters

masterIndex System.Int32 requiredposition: 0
layoutIndex System.Int32 requiredposition: 1
placeholderType DocumentFormat.OpenXml.Presentation.PlaceholderValues requiredposition: 2
style OfficeIMO.PowerPoint.PowerPointTextStyle requiredposition: 3
index System.Nullable{System.UInt32} = null optionalposition: 4
level System.Nullable{System.Int32} = null optionalposition: 5
bulletChar System.Nullable{System.Char} = null optionalposition: 6
numbering System.Nullable{DocumentFormat.OpenXml.Drawing.TextAutoNumberSchemeValues} = null optionalposition: 7
createIfMissing System.Boolean = false optionalposition: 8
public Void SetThemeColor(PowerPointThemeColor color, String hexValue, Int32 masterIndex = 0) #
Returns: Void

Sets a theme color value in hex format (e.g. "FF0000").

Parameters

color OfficeIMO.PowerPoint.PowerPointThemeColor requiredposition: 0
hexValue System.String requiredposition: 1
masterIndex System.Int32 = 0 optionalposition: 2
public Void SetThemeColorForAllMasters(PowerPointThemeColor color, String hexValue) #
Returns: Void

Sets a theme color value across all masters.

Parameters

color OfficeIMO.PowerPoint.PowerPointThemeColor requiredposition: 0
hexValue System.String requiredposition: 1
public Void SetThemeColors(IDictionary<PowerPointThemeColor, String> colors, Int32 masterIndex = 0) #
Returns: Void

Sets multiple theme colors at once.

Parameters

colors System.Collections.Generic.IDictionary{OfficeIMO.PowerPoint.PowerPointThemeColor,System.String} requiredposition: 0
masterIndex System.Int32 = 0 optionalposition: 1
public Void SetThemeColorsForAllMasters(IDictionary<PowerPointThemeColor, String> colors) #
Returns: Void

Sets multiple theme colors across all masters.

Parameters

colors System.Collections.Generic.IDictionary{OfficeIMO.PowerPoint.PowerPointThemeColor,System.String} requiredposition: 0
public Void SetThemeFonts(PowerPointThemeFontSet fonts, Int32 masterIndex = 0, Boolean keepExistingWhenNull = true) #
Returns: Void

Sets the major/minor fonts (Latin, East Asian, and complex script).

Parameters

fonts OfficeIMO.PowerPoint.PowerPointThemeFontSet requiredposition: 0
masterIndex System.Int32 = 0 optionalposition: 1
keepExistingWhenNull System.Boolean = true optionalposition: 2
public Void SetThemeFontsForAllMasters(PowerPointThemeFontSet fonts, Boolean keepExistingWhenNull = true) #
Returns: Void

Sets the major/minor fonts (Latin, East Asian, and complex script) across all masters.

Parameters

fonts OfficeIMO.PowerPoint.PowerPointThemeFontSet requiredposition: 0
keepExistingWhenNull System.Boolean = true optionalposition: 1
public Void SetThemeLatinFonts(String majorLatin, String minorLatin, Int32 masterIndex = 0) #
Returns: Void

Sets the major/minor Latin fonts for the theme.

Parameters

majorLatin System.String requiredposition: 0
minorLatin System.String requiredposition: 1
masterIndex System.Int32 = 0 optionalposition: 2
public Void SetThemeLatinFontsForAllMasters(String majorLatin, String minorLatin) #
Returns: Void

Sets the major/minor Latin fonts across all masters.

Parameters

majorLatin System.String requiredposition: 0
minorLatin System.String requiredposition: 1
public Void SetThemeNameForAllMasters(String name) #
Returns: Void

Sets the theme name across all masters.

Parameters

name System.String requiredposition: 0
public List<ValidationErrorInfo> ValidateDocument(FileFormatVersions fileFormatVersions = Microsoft365) #
Returns: List<ValidationErrorInfo>

Validates the presentation using the specified file format version.

Parameters

fileFormatVersions DocumentFormat.OpenXml.FileFormatVersions = Microsoft365 optionalposition: 0
File format version to validate against.

Returns

List of validation errors.

Examples


using (var presentation = PowerPointPresentation.Create("test.pptx")) {
    var errors = presentation.ValidateDocument();
    if (errors.Count > 0) {
        // Handle validation errors
    }
}

        

Properties

public IReadOnlyList<PowerPointSlide> Slides { get; } #

Collection of slides in the presentation.

public PowerPointSlideSize SlideSize { get; } #

Slide size information for the presentation.

public String ThemeName { get; set; } #

Gets or sets the name of the presentation theme.

public IReadOnlyList<PowerPointTableStyleInfo> TableStyles { get; } #

Gets the list of table styles available in the presentation.

public Boolean SnapToGrid { get; set; } #

Gets or sets whether slide view snapping uses the grid.

public Int64 GridSpacingXEmus { get; set; } #

Horizontal grid spacing in EMUs.

public Int64 GridSpacingYEmus { get; set; } #

Vertical grid spacing in EMUs.

public Boolean DocumentIsValid { get; } #

Indicates whether the presentation passes Open XML validation.

public List<ValidationErrorInfo> DocumentValidationErrors { get; } #

Gets the list of validation errors for the presentation.

Extension Methods

public static IEnumerable<PowerPointExtractChunk> ExtractMarkdownChunks(PowerPointPresentation presentation, PowerPointExtractOptions extract = null, PowerPointExtractChunkingOptions chunking = null, String sourcePath = null, CancellationToken cancellationToken = null) #
Returns: IEnumerable<PowerPointExtractChunk>

Extracts a presentation into slide-aligned chunks (one chunk per slide by default).

Parameters

presentation OfficeIMO.PowerPoint.PowerPointPresentation requiredposition: 0
extract OfficeIMO.PowerPoint.PowerPointExtractionExtensions.PowerPointExtractOptions = null optionalposition: 1
chunking OfficeIMO.PowerPoint.PowerPointExtractChunkingOptions = null optionalposition: 2
sourcePath System.String = null optionalposition: 3
cancellationToken System.Threading.CancellationToken = null optionalposition: 4