Κινούμενα Διαγράμματα PowerPoint σε Java
Εισαγωγή
Το Aspose.Slides for Java υποστηρίζει την animation των στοιχείων του διαγράμματος. Series, Categories, Series Elements, Categories Elements μπορούν να αναπαραχθούν με τη μέθοδο ISequence.addEffect και δύο απαριθμήσεις EffectChartMajorGroupingType και EffectChartMinorGroupingType.
Animation Σειρών Διαγράμματος
Αν θέλετε να δημιουργήσετε animation για μια σειρά διαγράμματος, γράψτε τον κώδικα σύμφωνα με τα παρακάτω βήματα:
- Φορτώστε μια παρουσίαση.
- Αποκτήστε αναφορά στο αντικείμενο του διαγράμματος.
- Δημιουργήστε animation για τη σειρά.
- Γράψτε το αρχείο παρουσίασης στο δίσκο.
Στο παρακάτω παράδειγμα, δημιουργήσαμε animation για σειρά διαγράμματος.
// Δημιουργία αντικειμένου Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης
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);
// Δημιουργήστε animation στη σειρά
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);
// Γράψτε την τροποποιημένη παρουσίαση στο δίσκο
pres.save("AnimatingSeries_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Animation Κατηγορίας Διαγράμματος
Αν θέλετε να δημιουργήσετε animation για μια κατηγορία διαγράμματος, γράψτε τον κώδικα σύμφωνα με τα παρακάτω βήματα:
- Φορτώστε μια παρουσίαση.
- Αποκτήστε αναφορά στο αντικείμενο του διαγράμματος.
- Δημιουργήστε animation για την Κατηγορία.
- Γράψτε το αρχείο παρουσίασης στο δίσκο.
Στο παρακάτω παράδειγμα, δημιουργήσαμε animation για την κατηγορία του διαγράμματος.
// Δημιουργία αντικειμένου Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης
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();
}
Animation σε Στοιχείο Σειράς
Αν θέλετε να δημιουργήσετε animation για στοιχεία σειράς, γράψτε τον κώδικα σύμφωνα με τα παρακάτω βήματα:
- Φορτώστε μια παρουσίαση.
- Αποκτήστε αναφορά στο αντικείμενο του διαγράμματος.
- Δημιουργήστε animation για στοιχεία σειράς.
- Γράψτε το αρχείο παρουσίασης στο δίσκο.
Στο παρακάτω παράδειγμα, δημιουργήσαμε animation για τα στοιχεία της σειράς.
// Δημιουργία αντικειμένου Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης
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);
// Δημιουργία animation στα στοιχεία της σειράς
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);
// Γράψτε το αρχείο παρουσίασης στο δίσκο
pres.save("AnimatingSeriesElements_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Animation σε Στοιχείο Κατηγορίας
Αν θέλετε να δημιουργήσετε animation για στοιχεία κατηγορίας, γράψτε τον κώδικα σύμφωνα με τα παρακάτω βήματα:
- Φορτώστε μια παρουσίαση.
- Αποκτήστε αναφορά στο αντικείμενο του διαγράμματος.
- Δημιουργήστε animation για στοιχεία κατηγορίας.
- Γράψτε το αρχείο παρουσίασης στο δίσκο.
Στο παρακάτω παράδειγμα, δημιουργήσαμε animation για τα στοιχεία των κατηγοριών.
// Δημιουργία αντικειμένου Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης
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);
// Δημιουργία animation των στοιχείων των κατηγοριών
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);
// Γράψτε το αρχείο παρουσίασης στο δίσκο
pres.save("AnimatingCategoriesElements_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Συχνές Ερωτήσεις
Υποστηρίζονται διαφορετικοί τύποι εφέ (π.χ., είσοδος, έμφαση, έξοδος) για τα διαγράμματα όπως για τα συνηθισμένα σχήματα;
Ναι. Ένα διάγραμμα θεωρείται σχήμα, επομένως υποστηρίζει τους τυπικούς τύπους animation εφέ, συμπεριλαμβανομένης της εισόδου, της έμφασης και της εξόδου, με πλήρη έλεγχο μέσω του χρονικού άξονα της διαφάνειας και των ακολουθιών animation.
Μπορώ να συνδυάσω animation διαγράμματος με μεταβάσεις διαφάνειας;
Ναι. Τα Transitions εφαρμόζονται στη διαφάνεια, ενώ τα εφέ animation εφαρμόζονται στα αντικείμενα της διαφάνειας. Μπορείτε να χρησιμοποιήσετε και τα δύο μαζί στην ίδια παρουσίαση και να τα ελέγχετε ανεξάρτητα.
Διατηρούνται τα animation του διαγράμματος κατά την αποθήκευση σε PPTX;
Ναι. Όταν αποθηκεύετε σε PPTX, όλα τα εφέ animation και η σειρά τους διατηρούνται επειδή αποτελούν μέρος του εγγενούς μοντέλου animation της παρουσίασης.
Μπορώ να διαβάσω υπάρχοντα animation διαγράμματος από μια παρουσίαση και να τα τροποποιήσω;
Ναι. Το API παρέχει πρόσβαση στον χρονικό άξονα της διαφάνειας, στις ακολουθίες και στα εφέ, επιτρέποντάς σας να εξετάσετε τα υπάρχοντα animation διαγράμματος και να τα προσαρμόσετε χωρίς να δημιουργήσετε ξανά τα πάντα από την αρχή.
Μπορώ να δημιουργήσω βίντεο που περιλαμβάνει animation διαγράμματος χρησιμοποιώντας το Aspose.Slides;
Ναι. Μπορείτε να εξάγετε μια παρουσίαση σε βίντεο διατηρώντας τα animation, ρυθμίζοντας τα χρονικά πλαίσια και άλλες ρυθμίσεις εξαγωγής ώστε το τελικό κλιπ να αντικατοπτρίζει την animation αναπαραγωγή.