PPT2PDF:把 PPT 中的动画转化为 PDF 格式
我们平时做展示的时候往往需要做幻灯片,虽然动画并不是必须的,但是动画在你需要通过 PPT 页面内的不同元素逐级地传递你的信息时,动画就变得很有必要了。适当的动画可以很好地抓住人的眼球和注意力。
无论是在演示时使用更为安全的展示方案,还是在展示结束以后向大家分发报告的资料,用 PDF 格式来进行传播都更有必要。所以怎么在保留动画的情况,将幻灯片导出就显得尤为重要了。以下是找到的几种解决方案:
- PPspliT 是一款加载项工具,具体内容可以戳超链接。可以将动画效果分成不同的幻灯片。
- Neil Mitchell 写的 PowerPoint 脚本。这个作者其实写过两个版本的脚本,前面贴出来的是改进过的版本,原版本见这里
宏的运行方法都比较一致(运行过程中可能会提示权限等问题),以下内容适用于 Office2016
:
- 在主菜单文件中调出选项卡。调出的办法是,点击菜单栏左上角的文件,从下拉菜单中选择选项,然后点击左侧的常规选项卡,再从右边窗口中选中显示开发工具
- 回到 PowerPoint 主界面,选择视图面板栏,从这个面板的右边选择宏按钮
- 在宏窗口中输入一个宏名字(任意),然后点新建
- 在宏编辑窗口中,将下面的代码粘贴到
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