Animuj wykresy PowerPoint w Pythonie przy użyciu Java
Wprowadzenie
Aspose.Slides dla Pythona via Java obsługuje animowanie elementów wykresu. Series, Categories, Series Elements i Category Elements można animować przy użyciu metody Sequence.addEffect oraz dwóch wyliczeń: EffectChartMajorGroupingType i EffectChartMinorGroupingType.
Animacja serii wykresu
Jeśli chcesz animować serię wykresu, napisz kod zgodnie z poniższymi krokami:
- Wczytaj prezentację.
- Pobierz odwołanie do obiektu wykresu.
- Animuj serię.
- Zapisz plik prezentacji na dysku.
Poniższy przykład animuje serie wykresu. Wykres w pliku przykładowym ma trzy serie, więc dla każdego indeksu od 0 do 2 dodawany jest jeden efekt. Aspose.Slides nie sprawdza indeksu względem danych wykresu, a efekt dodany dla nieistniejącej serii jest zapisywany w pliku, ale nie animuje niczego — zachowaj indeks mniejszy niż liczba serii w twoim własnym wykresie.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import EffectChartMajorGroupingType, EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat
# Wczytaj prezentację.
presentation = Presentation("ExistingChart.pptx")
try:
# Pobierz odwołanie do obiektu wykresu.
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().get_Item(0)
sequence = slide.getTimeline().getMainSequence()
# Animuj elementy wykresu.
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)
# Zapisz zmodyfikowaną prezentację na dysku.
presentation.save("AnimatingSeries_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Animacja kategorii wykresu
Jeśli chcesz animować kategorię wykresu, napisz kod zgodnie z poniższymi krokami:
- Wczytaj prezentację.
- Pobierz odwołanie do obiektu wykresu.
- Animuj kategorię.
- Zapisz plik prezentacji na dysku.
Poniższy przykład animuje kategorie wykresu.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import EffectChartMajorGroupingType, EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat
# Wczytaj prezentację.
presentation = Presentation("ExistingChart.pptx")
try:
# Pobierz odwołanie do obiektu wykresu.
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().get_Item(0)
sequence = slide.getTimeline().getMainSequence()
# Animuj elementy wykresu.
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)
# Zapisz zmodyfikowaną prezentację na dysku.
presentation.save("Sample_Animation_C.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Animacja w elemencie serii
Jeśli chcesz animować elementy serii, napisz kod zgodnie z poniższymi krokami:
- Wczytaj prezentację.
- Pobierz odwołanie do obiektu wykresu.
- Animuj elementy serii.
- Zapisz plik prezentacji na dysku.
Poniższy przykład animuje elementy serii.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpapi.startJVM()
from asposeslides.api import EffectChartMinorGroupingType, EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat
# Wczytaj prezentację.
presentation = Presentation("ExistingChart.pptx")
try:
# Pobierz odwołanie do obiektu wykresu.
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().get_Item(0)
sequence = slide.getTimeline().getMainSequence()
# Animuj elementy wykresu.
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)
# Zapisz zmodyfikowaną prezentację na dysku.
presentation.save("AnimatingSeriesElements_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Animacja w elemencie kategorii
Jeśli chcesz animować elementy kategorii, napisz kod zgodnie z poniższymi krokami:
- Wczytaj prezentację.
- Pobierz odwołanie do obiektu wykresu.
- Animuj elementy kategorii.
- Zapisz plik prezentacji na dysku.
Poniższy przykład animuje elementy kategorii.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import EffectChartMinorGroupingType, EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat
# Wczytaj prezentację.
presentation = Presentation("ExistingChart.pptx")
try:
# Pobierz odwołanie do obiektu wykresu.
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().get_Item(0)
sequence = slide.getTimeline().getMainSequence()
# Animuj elementy wykresu.
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)
# Zapisz zmodyfikowaną prezentację na dysku.
presentation.save("AnimatingCategoriesElements_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
FAQ
Czy różne typy efektów (np. wejścia, uwydatnienia, wyjścia) są obsługiwane dla wykresów tak jak dla zwykłych kształtów?
Tak. Wykres jest traktowany jako kształt, więc obsługuje standardowe typy efektów animacji, w tym wejścia, uwydatnienia i wyjścia, z pełną kontrolą poprzez oś czasu slajdu i sekwencje animacji.
Czy mogę łączyć animację wykresu z przejściami slajdów?
Tak. Transitions stosuje się do slajdu, natomiast efekty animacji dotyczą obiektów na slajdzie. Można używać obu jednocześnie w tej samej prezentacji i sterować nimi niezależnie.
Czy animacje wykresów są zachowywane przy zapisywaniu do PPTX?
Tak. Gdy zapisujesz do PPTX, wszystkie efekty animacji i ich kolejność są zachowywane, ponieważ są częścią natywnego modelu animacji prezentacji.
Czy mogę odczytać istniejące animacje wykresów z prezentacji i zmodyfikować je?
Tak. API udostępnia dostęp do osi czasu slajdu, sekwencji i efektów, co pozwala przeglądać istniejące animacje wykresów i modyfikować je bez konieczności od nowa tworzyć wszystkie efekty.
Czy mogę wygenerować wideo zawierające animacje wykresów przy użyciu Aspose.Slides?
Tak. Możesz wyeksportować prezentację do wideo, zachowując animacje, konfigurując czasy i inne ustawienia eksportu, aby uzyskany klip odzwierciedlał animowane odtwarzanie.