Animuj wykresy PowerPoint w Javie
Wprowadzenie
Aspose.Slides for Java obsługuje animowanie elementów wykresu. Series, Categories, Series Elements, Categories Elements mogą być animowane przy użyciu metody ISequence.addEffect oraz dwóch wyliczeń EffectChartMajorGroupingType i EffectChartMinorGroupingType.
Animacja serii wykresu
Jeśli chcesz animować serię wykresu, napisz kod zgodnie z poniższymi krokami:
- Załaduj prezentację.
- Uzyskaj odwołanie do obiektu wykresu.
- Animuj serię.
- Zapisz plik prezentacji na dysku.
W poniższym przykładzie animowaliśmy serię wykresu.
// Instancjuj klasę Presentation, która reprezentuje plik prezentacji
Presentation pres = new Presentation("ExistingChart.pptx");
try {
// Pobierz odwołanie do obiektu wykresu
ISlide slide = pres.getSlides().get_Item(0);
IShapeCollection shapes = slide.getShapes();
IChart chart = (IChart) shapes.get_Item(0);
// Animuj serię
slide.getTimeline().getMainSequence().addEffect(chart, EffectType.Fade, EffectSubtype.None,
EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart,
EffectChartMajorGroupingType.BySeries, 0,
EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart,
EffectChartMajorGroupingType.BySeries, 1,
EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart,
EffectChartMajorGroupingType.BySeries, 2,
EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart,
EffectChartMajorGroupingType.BySeries, 3,
EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
// Zapisz zmodyfikowaną prezentację na dysk
pres.save("AnimatingSeries_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Animacja kategorii wykresu
Jeśli chcesz animować serię wykresu, napisz kod zgodnie z poniższymi krokami:
- Załaduj prezentację.
- Uzyskaj odwołanie do obiektu wykresu.
- Animuj kategorię.
- Zapisz plik prezentacji na dysku.
W poniższym przykładzie animowaliśmy kategorię wykresu.
// Instancjuj klasę Presentation, która reprezentuje plik prezentacji
Presentation pres = new Presentation("ExistingChart.pptx");
try {
ISlide slide = pres.getSlides().get_Item(0);
IShapeCollection shapes = slide.getShapes();
IChart chart = (IChart) shapes.get_Item(0);
slide.getTimeline().getMainSequence().addEffect(chart, EffectType.Fade, EffectSubtype.None,
EffectTriggerType.AfterPrevious);
((Sequence) slide.getTimeline().getMainSequence()).addEffect(chart,
EffectChartMajorGroupingType.ByCategory, 0,
EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence) slide.getTimeline().getMainSequence()).addEffect(chart,
EffectChartMajorGroupingType.ByCategory, 1,
EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence) slide.getTimeline().getMainSequence()).addEffect(chart,
EffectChartMajorGroupingType.ByCategory, 2,
EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence) slide.getTimeline().getMainSequence()).addEffect(chart,
EffectChartMajorGroupingType.ByCategory, 3,
EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
pres.save("Sample_Animation_C.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Animacja elementu serii
Jeśli chcesz animować elementy serii, napisz kod zgodnie z poniższymi krokami:
- Załaduj prezentację.
- Uzyskaj odwołanie do obiektu wykresu.
- Animuj elementy serii.
- Zapisz plik prezentacji na dysku.
W poniższym przykładzie animowaliśmy elementy serii.
// Instancjuj klasę Presentation, która reprezentuje plik prezentacji
Presentation pres = new Presentation("ExistingChart.pptx");
try {
// Pobierz odwołanie do obiektu wykresu
ISlide slide = pres.getSlides().get_Item(0);
IShapeCollection shapes = slide.getShapes();
IChart chart = (IChart) shapes.get_Item(0);
// Animuj elementy serii
slide.getTimeline().getMainSequence().addEffect(chart, EffectType.Fade, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
0, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
0, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
0, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
0, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
1, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
1, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
1, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
1, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
2, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
2, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
2, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInSeries,
2, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
// Zapisz plik prezentacji na dysk
pres.save("AnimatingSeriesElements_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Animacja elementu kategorii
Jeśli chcesz animować elementy kategorii, napisz kod zgodnie z poniższymi krokami:
- Załaduj prezentację.
- Uzyskaj odwołanie do obiektu wykresu.
- Animuj elementy kategorii.
- Zapisz plik prezentacji na dysku.
W poniższym przykładzie animowaliśmy elementy kategorii.
// Utwórz klasę Presentation, która reprezentuje plik prezentacji
Presentation pres = new Presentation("ExistingChart.pptx");
try {
// Pobierz odwołanie do obiektu wykresu
ISlide slide = pres.getSlides().get_Item(0);
IShapeCollection shapes = slide.getShapes();
IChart chart = (IChart) shapes.get_Item(0);
// Animuj elementy kategorii
slide.getTimeline().getMainSequence().addEffect(chart, EffectType.Fade, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
0, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
0, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
0, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
0, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
1, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
1, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
1, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
1, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
2, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
2, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
2, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
((Sequence)slide.getTimeline().getMainSequence()).addEffect(chart, EffectChartMinorGroupingType.ByElementInCategory,
2, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
// Zapisz plik prezentacji na dysk
pres.save("AnimatingCategoriesElements_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Czy różne typy efektów (np. wejście, podkreślenie, zakończenie) 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ście, podkreślenie i zakończenie, z pełną kontrolą poprzez oś czasu slajdu i sekwencje animacji.
Czy mogę połączyć animację wykresu z przejściami slajdów?
Tak. Transitions odnoszą się do slajdu, natomiast efekty animacji dotyczą obiektów na slajdzie. Możesz używać obu jednocześnie w tej samej prezentacji i kontrolować je niezależnie.
Czy animacje wykresów są zachowywane przy zapisie do PPTX?
Tak. Gdy save to PPTX, wszystkie efekty animacji i ich kolejność są zachowywane, ponieważ stanowią część natywnego modelu animacji prezentacji.
Czy mogę odczytać istniejące animacje wykresu z prezentacji i zmodyfikować je?
Tak. API zapewnia dostęp do osi czasu slajdu, sekwencji i efektów, umożliwiając przeglądanie istniejących animacji wykresu i ich dostosowanie bez konieczności tworzenia wszystkiego od nowa.
Czy mogę stworzyć wideo zawierające animacje wykresu przy użyciu Aspose.Slides?
Tak. Możesz export a presentation to video zachowując animacje, konfigurując czasy i inne ustawienia eksportu, aby otrzymany klip odzwierciedlał animowane odtwarzanie.