使用 OpenXML SDK 从 Powerpoint 演示文稿中删除所有动画 pptx

Remove all animations pptx from Powerpoint Presentation using OpenXML SDK

我目前正在使用 OpenXML SDK 编辑现有的 PowerPoint 文件 (.pptx)。我能知道如何从我的 PowerPoint 演示文稿中删除所有动画吗?

这样做的原因是我想要一个干净的非动画 ppt 用于我的用例。我到处都检查过,关于使用 OpenXML 的动画的文档很少甚至没有。

谢谢。

是的,这就是我使用 Timing class 的方法,非常漂亮 straight-forward。

在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

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