Pour vous tous, ceux qui réalisent des diapositives ppt avec des animations comme:
Existe-t-il un outil qui peut convertir le ppt en PDF et conserver chaque animation dans une diapositive séparée, par exemple?
Je sais que vous pouvez créer des diapositives animées avec LaTeX Beamer qui se convertissent bien en PDF, j'en ai fait certaines, mais je ont également quelques fichiers ppt que je veux convertir en PDF.
Voici ce que j'ai essayé jusqu'à présent:
J'ai recherché SO et je n'ai pas trouvé de réponse satisfaisante pour gérer les animations. Qu'utilisez-vous?
J'ai trouvé un petit plugin qui divise vos diapositives PowerPoint chaque fois qu'elles ont des animations. Donc, si vous avez 3 animations sur 1 diapositive, il générera 3 diapositives avec chaque animation étape par étape. Exportez-le ensuite en PDF :-)
Cela a fonctionné pour moi sur PowerPoint 2010. Je vous recommande de faire un fichier de sauvegarde de présentation avant de le fractionner. Et n'oubliez pas de décocher la case "Diviser sur les animations déclenchées par un clic".
http://www.dia.uniroma3.it/~rimondin/downloads.php
J'ai également trouvé cela (mais la première solution était gratuite et fonctionnait donc :-)) http://www.verypdf.com/wordpress/201306/how-to-create-a-pdf-from-PowerPoint- avec-animations-36850.html
Cette article de blog fournit un script de macro VBA qui divisera chaque diapositive qui a des animations (par exemple, des images ou des puces qui apparaissent une par une) en plusieurs diapositives, puis vous pouvez enregistrer sous PDF et le tour est joué!
Surtout, puisqu'il s'agit d'un script VBA, il devrait fonctionner à la fois pour Windows et Mac . Je ne l'ai essayé que sur OSX (yosemite) avec PowerPoint 2011, et cela a plutôt bien fonctionné. Le seul problème que j'avais était que les diapositives avec des puces animées (qui apparaissent une par une) étaient divisées en plusieurs diapositives mais chaque diapositive contenait tous les puces, donc j'ai dû en supprimer manuellement. Pourtant, pour tout le reste, cela a parfaitement fonctionné et c'est un petit prix à payer par rapport à tout faire manuellement, en particulier les animations d'images. Bien sûr, vous pouvez/ne pas rencontrer le même problème sous Windows ou d'autres versions de PP. Dans tous les cas, pour OSX, c'est la seule solution de travail que j'ai trouvée jusqu'à présent.
Les instructions pour ajouter des macros VBA à PowerPoint peuvent être trouvées ici .
J'espère que ça marchera pour toi aussi!
Cette article de blog fournit un script de macro VBA qui divisera chaque diapositive qui contient des animations en plusieurs diapositives, sans garder les diapositives d'origine devant les diapositives développées (comme c'est le cas dans cette réponse ).
Le problème qui subsiste avec cette macro et l'autre macro est que le contenu d'un bloc de texte avec plusieurs animations est toujours affiché dans son ensemble (par exemple, si chaque phrase du même bloc de texte a une animation distincte, toutes les phrases seront toujours affichées ensemble).
Code VBA :
Private AnimVisibilityTag As String
Sub ExpandAnimations()
AnimVisibilityTag = "AnimationExpandVisibility"
Dim pres As Presentation
Dim Slidenum As Integer
Set pres = ActivePresentation
Slidenum = 1
Do While Slidenum <= pres.Slides.Count
Dim s As Slide
Dim animationCount As Integer
Set s = pres.Slides.Item(Slidenum)
If s.TimeLine.MainSequence.Count > 0 Then
Set s = pres.Slides.Item(Slidenum)
PrepareSlideForAnimationExpansion s
animationCount = expandAnimationsForSlide(pres, s)
Else
animationCount = 1
End If
Slidenum = Slidenum + animationCount
Loop
End Sub
Private Sub PrepareSlideForAnimationExpansion(s As Slide)
' Set visibility tags on all shapes
For Each oShape In s.Shapes
oShape.Tags.Add AnimVisibilityTag, "true"
Next oShape
' Find initial visibility of each shape
For animIdx = s.TimeLine.MainSequence.Count To 1 Step -1
Dim seq As Effect
Set seq = s.TimeLine.MainSequence.Item(animIdx)
On Error GoTo UnknownEffect
For behaviourIdx = seq.Behaviors.Count To 1 Step -1
Dim behavior As AnimationBehavior
Set behavior = seq.Behaviors.Item(behaviourIdx)
If behavior.Type = msoAnimTypeSet Then
If behavior.SetEffect.Property = msoAnimVisibility Then
If behavior.SetEffect.To <> 0 Then
seq.Shape.Tags.Delete AnimVisibilityTag
seq.Shape.Tags.Add AnimVisibilityTag, "false"
Else
seq.Shape.Tags.Delete AnimVisibilityTag
seq.Shape.Tags.Add AnimVisibilityTag, "true"
End If
End If
End If
Next behaviourIdx
NextSequence:
On Error GoTo 0
Next animIdx
Exit Sub
UnknownEffect:
MsgBox ("Encountered an error while calculating object visibility: " + Err.Description)
Resume NextSequence
End Sub
Private Function expandAnimationsForSlide(pres As Presentation, s As Slide) As Integer
Dim numSlides As Integer
numSlides = 1
' Play the animation back to determine visibility
Do While True
' Stop when animation is over or we hit a click trigger
If s.TimeLine.MainSequence.Count <= 0 Then Exit Do
Dim fx As Effect
Set fx = s.TimeLine.MainSequence.Item(1)
If fx.Timing.TriggerType = msoAnimTriggerOnPageClick Then Exit Do
' Play the animation
PlayAnimationEffect fx
fx.Delete
Loop
' Make a copy of the slide and recurse
If s.TimeLine.MainSequence.Count > 0 Then
s.TimeLine.MainSequence.Item(1).Timing.TriggerType = msoAnimTriggerWithPrevious
Dim nextSlide As Slide
Set nextSlide = s.Duplicate.Item(1)
numSlides = 1 + expandAnimationsForSlide(pres, nextSlide)
End If
' Apply visibility
rescan = True
While rescan
rescan = False
For n = 1 To s.Shapes.Count
If s.Shapes.Item(n).Tags.Item(AnimVisibilityTag) = "false" Then
s.Shapes.Item(n).Delete
rescan = True
Exit For
End If
Next n
Wend
' Clear all tags
For Each oShape In s.Shapes
oShape.Tags.Delete AnimVisibilityTag
Next oShape
' Remove animation (since they've been expanded now)
While s.TimeLine.MainSequence.Count > 0
s.TimeLine.MainSequence.Item(1).Delete
Wend
expandAnimationsForSlide = numSlides
End Function
Private Sub assignColor(ByRef varColor As ColorFormat, valueColor As ColorFormat)
If valueColor.Type = msoColorTypeScheme Then
varColor.SchemeColor = valueColor.SchemeColor
Else
varColor.RGB = valueColor.RGB
End If
End Sub
Private Sub PlayAnimationEffect(fx As Effect)
On Error GoTo UnknownEffect
For n = 1 To fx.Behaviors.Count
Dim behavior As AnimationBehavior
Set behavior = fx.Behaviors.Item(n)
Select Case behavior.Type
Case msoAnimTypeSet
' Appear or disappear
If behavior.SetEffect.Property = msoAnimVisibility Then
If behavior.SetEffect.To <> 0 Then
fx.Shape.Tags.Delete AnimVisibilityTag
fx.Shape.Tags.Add AnimVisibilityTag, "true"
Else
fx.Shape.Tags.Delete AnimVisibilityTag
fx.Shape.Tags.Add AnimVisibilityTag, "false"
End If
Else
' Log the problem
End If
Case msoAnimTypeColor
' Change color
If fx.Shape.HasTextFrame Then
Dim range As TextRange
Set range = fx.Shape.TextFrame.TextRange
assignColor range.Paragraphs(fx.Paragraph).Font.Color, behavior.ColorEffect.To
End If
Case Else
' Log the problem
End Select
Next n
Exit Sub
UnknownEffect:
MsgBox ("Encountered an error expanding animations: " + Err.Description)
Exit Sub
End Sub
Pour ceux d'entre vous qui utilisent LibreOffice ou OpenOffice, il existe un plugin disponible sur github qui le fait très bien:
D'après mon expérience, toutes les animations standard d'apparition/disparition sont bien divisées. Les animations de mouvement d'objet fonctionnent également (vous obtenez une diapositive avec la position de départ et une avec la position de fin de l'objet). Je n'ai pas eu la chance de tester d'autres types d'animation, mais cela devrait couvrir tous les besoins standard :-)