Πώς να δημιουργήσετε παρουσιάσεις σε Java
Το Aspose.Slides FOSS for Java σάς επιτρέπει να δημιουργείτε παρουσιάσεις PowerPoint εξ ολοκλήρου σε Java χωρίς εξάρτηση από το Microsoft Office. Αυτός ο οδηγός δείχνει πώς να δημιουργήσετε μια νέα παρουσίαση, να προσθέσετε διαφάνειες και σχήματα, να μορφοποιήσετε κείμενο και να αποθηκεύσετε το αποτέλεσμα.
Οδηγός βήμα-βήμα
Βήμα 1: Προσθέστε την εξάρτηση Maven
Προσθέστε το Aspose.Slides FOSS στο pom.xml σας. Απαιτείται Java 21 ή νεότερη.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Επαληθεύστε την εγκατάσταση:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Βήμα 2: Εισαγωγή των Απαιτούμενων Κλάσεων
Εισάγετε την κλάση Presentation και το enum SaveFormat που χρειάζονται για την αποθήκευση.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;Όλες οι σταθερές τύπου σχήματος βρίσκονται στο org.aspose.slides.foss.ShapeType. Τα enums μορφοποίησης (FillType, NullableBool) είναι επίσης στο org.aspose.slides.foss.
Βήμα 3: Δημιουργία παρουσίασης
Χρησιμοποιήστε new Presentation() και τυλίξτε το σε try-with-resources. Μια νέα παρουσίαση ξεκινά με μία κενή διαφάνεια.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation()) {
System.out.println("Slides in new presentation: " + prs.getSlides().size());
prs.save("output.pptx", SaveFormat.PPTX);
}Σημαντικό: Πάντα χρησιμοποιείτε try-with-resources ή καλέστε prs.dispose() σε ένα finally block. Διαφορετικά, οι πόροι δεν θα απελευθερωθούν σωστά.
Βήμα 4: Πρόσβαση σε μια διαφάνεια
Η πρώτη διαφάνεια βρίσκεται στο δείκτη 0. Μια κενή παρουσίαση έχει ακριβώς μία διαφάνεια.
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0); // zero-based index
System.out.println("Slide at index 0: " + slide);
prs.save("output.pptx", SaveFormat.PPTX);
}Βήμα 5: Προσθήκη Σχήματος
Χρησιμοποιήστε slide.getShapes().addAutoShape() για να προσθέσετε ένα AutoShape. Οι παράμετροι είναι (shapeType, x, y, width, height) όλα σε μονάδες σημείου (1 σημείο = 1/72 ίντσα· το τυπικό slide είναι 720 × 540 pt).
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
// Rectangle at (50, 50) with 400 wide and 120 tall
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 400, 120
);
// Attach a text frame
shape.addTextFrame("Hello from Aspose.Slides FOSS!");
prs.save("with-shape.pptx", SaveFormat.PPTX);
}Βήμα 6: Αποθήκευση της Παρουσίασης
Καλέστε prs.save(path, SaveFormat.PPTX) πριν το μπλοκ try εξέλθει. Το PPTX είναι η μόνη υποστηριζόμενη μορφή εξόδου.
prs.save("result.pptx", SaveFormat.PPTX);Το αρχείο γράφεται ατομικά· εάν προκύψει σφάλμα πριν από αυτήν την κλήση, δεν δημιουργείται αρχείο εξόδου.
Πλήρες Παράδειγμα Εργασίας
Το παρακάτω πρόγραμμα δημιουργεί μια παρουσίαση δύο διαφανειών με ένα σχήμα τίτλου στην πρώτη διαφάνεια και έναν πίνακα στη δεύτερη.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
public class CreatePresentation {
public static void main(String[] args) {
try (Presentation prs = new Presentation()) {
// --- Slide 1: title shape ---
ISlide slide1 = prs.getSlides().get(0);
IAutoShape title = slide1.getShapes().addAutoShape(
ShapeType.RECTANGLE, 40, 40, 640, 80
);
ITextFrame tf = title.addTextFrame("Q1 Results: Executive Summary");
IPortionFormat fmt = tf.getParagraphs().get(0)
.getPortions().get(0).getPortionFormat();
fmt.setFontHeight(32);
fmt.setFontBold(NullableBool.TRUE);
fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(
Color.fromArgb(255, 0, 70, 127)
);
// --- Slide 2: table ---
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);
ITable table = slide2.getShapes().addTable(
40, 40,
new double[]{200.0, 120.0, 120.0},
new double[]{40.0, 40.0, 40.0}
);
String[] headers = {"Region", "Revenue", "Growth"};
String[][] data = {
{"North", "$1.2M", "+8%"},
{"South", "$0.9M", "+4%"},
};
for (int col = 0; col < headers.length; col++) {
table.getRows().get(0).get(col).getTextFrame().setText(headers[col]);
}
for (int row = 0; row < data.length; row++) {
for (int col = 0; col < data[row].length; col++) {
table.getRows().get(row + 1).get(col)
.getTextFrame().setText(data[row][col]);
}
}
prs.save("q1-results.pptx", SaveFormat.PPTX);
}
System.out.println("Saved q1-results.pptx");
}
}Κοινά Προβλήματα και Διορθώσεις
IllegalStateException: Presentation already disposed
Καλείτε μεθόδους σε ένα αντικείμενο Presentation μετά την έξοδο από το μπλοκ try-with-resources. Πάντα διατηρείτε όλη τη δουλειά μέσα στο μπλοκ try.
UnsupportedOperationException όταν αποθηκεύεται
Αυτό συμβαίνει όταν προσπαθείτε να αποθηκεύσετε σε μορφή διαφορετική από PPTX ή όταν χρησιμοποιείτε μια μη υποστηριζόμενη λειτουργία (όπως γραφήματα ή κινούμενα σχέδια).
Το σχήμα εμφανίζεται εκτός της ορατής περιοχής της διαφάνειας
Οι διαφάνειες είναι 720 x 540 σημεία από προεπιλογή. Διατηρήστε x + width <= 720 και y + height <= 540.
Συχνές Ερωτήσεις
Ποιο είναι το προεπιλεγμένο μέγεθος διαφάνειας;
Ένα νέο Presentation() δημιουργεί διαφάνειες στο τυπικό μέγεθος 10 x 7.5 ίντσες (720 x 540 σημεία). Η αλλαγή του μεγέθους της διαφάνειας δεν υποστηρίζεται ακόμη σε αυτήν την έκδοση.
Μπορώ να προσθέσω περισσότερες από μία διαφάνειες;
Ναι. Καλέστε prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) για να προσθέσετε μια κενή διαφάνεια και να την προσπελάσετε με δείκτη:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Μπορώ να ανοίξω ένα υπάρχον αρχείο και να προσθέσω διαφάνειες;
Ναι:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Σε ποιες μορφές μπορώ να αποθηκεύσω;
Μόνο SaveFormat.PPTX υποστηρίζεται. Η εξαγωγή σε PDF, HTML, SVG ή εικόνες δεν είναι διαθέσιμη σε αυτήν την έκδοση.