Reputation: 195
I'm currently working on editing my existing PowerPoint file (.pptx) using OpenXML SDK. Can I know how to remove all animations from my PowerPoint presentation?
The reason for this is I want a clean non-animated ppt for my use case. I've checked everywhere and there is minimal to no documentation regarding animation using OpenXML.
Thanks.
Upvotes: 3
Views: 200
Reputation: 29153
Yeah, here's how I do it with the Timing
class, it's pretty straight-forward.
In VB.Net:
Imports Presentation = DocumentFormat.OpenXml.Presentation
Imports DocumentFormat.OpenXml.Packaging
Module Module1
Sub Main()
Dim fileName As String = "C:\folder\New PPTX Presentation.pptx"
Using deck As PresentationDocument = PresentationDocument.Open(fileName, True)
For Each slidePart As SlidePart In deck.PresentationPart.SlideParts
Dim animationTimings As IEnumerable(Of Presentation.Timing) = slidePart.Slide.Descendants(Of Presentation.Timing)()
For Each animationTiming As Presentation.Timing In animationTimings
animationTiming.Remove()
Next
Next
End Using
End Sub
End Module
In C#:
using Presentation = DocumentFormat.OpenXml.Presentation;
using DocumentFormat.OpenXml.Packaging;
static class Module1
{
public static void Main()
{
string fileName = @"C:\folder\New PPTX Presentation.pptx";
using (PresentationDocument deck = PresentationDocument.Open(fileName, true))
{
foreach (SlidePart slidePart in deck.PresentationPart.SlideParts)
{
IEnumerable<Presentation.Timing> animationTimings = slidePart.Slide.Descendants<Presentation.Timing>();
foreach (Presentation.Timing animationTiming in animationTimings)
animationTiming.Remove();
}
}
}
}
Upvotes: 3