PPT2PDF:把 PPT 中的动画转化为 PDF 格式

·
默认分类 no tag October 25, 2021

我们平时做展示的时候往往需要做幻灯片,虽然动画并不是必须的,但是动画在你需要通过 PPT 页面内的不同元素逐级地传递你的信息时,动画就变得很有必要了。适当的动画可以很好地抓住人的眼球和注意力。

无论是在演示时使用更为安全的展示方案,还是在展示结束以后向大家分发报告的资料,用 PDF 格式来进行传播都更有必要。所以怎么在保留动画的情况,将幻灯片导出就显得尤为重要了。以下是找到的几种解决方案:

  1. PPspliT 是一款加载项工具,具体内容可以戳超链接。可以将动画效果分成不同的幻灯片。
  2. Neil Mitchell 写的 PowerPoint 脚本。这个作者其实写过两个版本的脚本,前面贴出来的是改进过的版本,原版本见这里

宏的运行方法都比较一致(运行过程中可能会提示权限等问题),以下内容适用于 Office2016:

  1. 在主菜单文件中调出选项卡。调出的办法是,点击菜单栏左上角的文件,从下拉菜单中选择选项,然后点击左侧的常规选项卡,再从右边窗口中选中显示开发工具
  2. 回到 PowerPoint 主界面,选择视图面板栏,从这个面板的右边选择宏按钮
  3. 在宏窗口中输入一个宏名字(任意),然后点新建
  4. 在宏编辑窗口中,将下面的代码粘贴到 sub 与 end sub 中间,然后点运行按钮即可

在代码中, 一共提供了 AddElements 和 RemElements 两个函数. AddElements 的代码循环遍历每张幻灯片,为动画中的每个单击级别复制一次,删除不应该可见的元素,并隐藏原始幻灯片。另一个函数则把 PPT 还原成最初的样子. 代码如下:

Sub AddElements()
Dim shp As Shape

Dim i As Integer, n As Integer
n = ActivePresentation.Slides.Count
For i = 1 To n
    Dim s As Slide
    Set s = ActivePresentation.Slides(i)
    s.SlideShowTransition.Hidden = msoTrue

    Dim max As Integer: max = 0
    For Each shp In s.Shapes
        If shp.AnimationSettings.Animate = msoTrue Then
            If shp.AnimationSettings.AnimationOrder > max Then
                max = shp.AnimationSettings.AnimationOrder
            End If
        End If
    Next

    Dim k As Integer, s2 As Slide
    For k = 0 To max
        Set s2 = s.Duplicate(1)
        s2.SlideShowTransition.Hidden = msoFalse
        s2.MoveTo ActivePresentation.Slides.Count

        Dim i2 As Integer
        For i2 = s2.Shapes.Count To 1 Step -1
            With s2.Shapes(i2)
                If .AnimationSettings.Animate = msoTrue Then
                    If .AnimationSettings.AnimationOrder > k Then
                        .Delete
                    Else
                        .AnimationSettings.Animate = msoFalse
                    End If
                End If
            End With
        Next
    Next
Next
End Sub
Sub RemElements()
Dim i As Integer, n As Integer
Dim s As Slide
n = ActivePresentation.Slides.Count
For i = n To 1 Step -1
    Set s = ActivePresentation.Slides(i)
    If s.SlideShowTransition.Hidden = msoTrue Then
        s.SlideShowTransition.Hidden = msoFalse
    Else
        s.Delete
    End If
Next
End Sub

本文摘自 How to export MS Power Point Slides to a PDF file and keep Animations

  • Not left !!
  • Typecho 样式测试
取消回复

说点什么?

© 2025 满园 - BASE. Using Typecho & Moricolor. 京公网安备 11010802040705号. 京ICP备2022027795号.