Animujte grafy PowerPoint v Pythonu pomocí Java
Úvod
Aspose.Slides for Python via Java podporuje animaci prvků grafu. Série, Kategorie, Prvky sérií a Prvky kategorií lze animovat pomocí metody Sequence.addEffect a dvou výčtů: EffectChartMajorGroupingType a EffectChartMinorGroupingType.
Animace sérií grafu
Pokud chcete animovat sérii grafu, napište kód podle níže uvedených kroků:
- Načtěte prezentaci.
- Získejte odkaz na objekt grafu.
- Animujte sérii.
- Zapíšete soubor prezentace na disk.
Následující příklad animuje série grafu. Graf v ukázkovém souboru má tři série, takže pro každý index od 0 do 2 je přidán jeden efekt. Aspose.Slides nekontroluje index vůči datům grafu a efekt přidaný pro sérii, která neexistuje, je zapsán do souboru, ale neanimuje nic — udržujte index pod počtem sérií ve vašem grafu.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import EffectChartMajorGroupingType, EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat
# Načtěte prezentaci.
presentation = Presentation("ExistingChart.pptx")
try:
# Získejte odkaz na objekt grafu.
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().get_Item(0)
sequence = slide.getTimeline().getMainSequence()
# Animujte prvky grafu.
sequence.addEffect(chart, EffectType.Fade, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMajorGroupingType.BySeries, 0, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMajorGroupingType.BySeries, 1, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMajorGroupingType.BySeries, 2, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
# Uložte upravenou prezentaci na disk.
presentation.save("AnimatingSeries_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Animace kategorií grafu
Pokud chcete animovat kategorii grafu, napište kód podle níže uvedených kroků:
- Načtěte prezentaci.
- Získejte odkaz na objekt grafu.
- Animujte kategorii.
- Zapíšete soubor prezentace na disk.
Následující příklad animuje kategorie grafu.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import EffectChartMajorGroupingType, EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat
# Načtěte prezentaci.
presentation = Presentation("ExistingChart.pptx")
try:
# Získejte odkaz na objekt grafu.
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().get_Item(0)
sequence = slide.getTimeline().getMainSequence()
# Animujte prvky grafu.
sequence.addEffect(chart, EffectType.Fade, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMajorGroupingType.ByCategory, 0, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMajorGroupingType.ByCategory, 1, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMajorGroupingType.ByCategory, 2, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMajorGroupingType.ByCategory, 3, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
# Uložte upravenou prezentaci na disk.
presentation.save("Sample_Animation_C.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Animace v prvku série
Pokud chcete animovat prvky sérií, napište kód podle níže uvedených kroků:
- Načtěte prezentaci.
- Získejte odkaz na objekt grafu.
- Animujte prvky sérií.
- Zapíšete soubor prezentace na disk.
Následující příklad animuje prvky sérií.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import EffectChartMinorGroupingType, EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat
# Načtěte prezentaci.
presentation = Presentation("ExistingChart.pptx")
try:
# Získejte odkaz na objekt grafu.
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().get_Item(0)
sequence = slide.getTimeline().getMainSequence()
# Animujte prvky grafu.
sequence.addEffect(chart, EffectType.Fade, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 0, 0, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 0, 1, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 0, 2, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 0, 3, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 1, 0, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 1, 1, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 1, 2, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 1, 3, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 2, 0, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 2, 1, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 2, 2, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 2, 3, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
# Uložte upravenou prezentaci na disk.
presentation.save("AnimatingSeriesElements_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Animace v prvku kategorie
Pokud chcete animovat prvky kategorií, napište kód podle níže uvedených kroků:
- Načtěte prezentaci.
- Získejte odkaz na objekt grafu.
- Animujte prvky kategorií.
- Zapíšete soubor prezentace na disk.
Následující příklad animuje prvky kategorií.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import EffectChartMinorGroupingType, EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat
# Načtěte prezentaci.
presentation = Presentation("ExistingChart.pptx")
try:
# Získejte odkaz na objekt grafu.
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().get_Item(0)
sequence = slide.getTimeline().getMainSequence()
# Animujte prvky grafu.
sequence.addEffect(chart, EffectType.Fade, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 0, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 1, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 2, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 3, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 0, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 1, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 2, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 3, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 0, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 1, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 2, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
sequence.addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 3, EffectType.Appear, EffectSubtype.None_, EffectTriggerType.AfterPrevious)
# Uložte upravenou prezentaci na disk.
presentation.save("AnimatingCategoriesElements_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Časté dotazy
Jsou pro grafy podporovány různé typy efektů (např. vstup, důraz, odchod) stejně jako pro běžné tvary?
Ano. Graf je považován za tvar, takže podporuje standardní typy animačních efektů, včetně vstupu, důrazu a odchodu, s plnou kontrolou prostřednictvím časové osy snímku a animačních sekvencí.
Mohu kombinovat animaci grafu s přechody snímků?
Ano. Transitions se vztahují na snímek, zatímco animační efekty se vztahují na objekty na snímku. Obě můžete použít současně ve stejné prezentaci a řídit je nezávisle.
Zachovají se animace grafu při ukládání do PPTX?
Ano. Když uložíte do PPTX, všechny animační efekty a jejich pořadí jsou zachovány, protože jsou součástí nativního animačního modelu prezentace.
Mohu načíst existující animace grafu z prezentace a upravit je?
Ano. API poskytuje přístup k časové ose snímku, sekvencím a efektům, což umožňuje prozkoumat existující animace grafu a upravit je, aniž byste museli vše znovu vytvářet od začátku.
Mohu vytvořit video, které zahrnuje animace grafu pomocí Aspose.Slides?
Ano. Můžete exportovat prezentaci do videa, přičemž zachováte animace, nastavíte časování a další exportní nastavení, aby výsledný klip odrážel animované přehrávání.