Συχνές Ερωτήσεις
Συχνές Ερωτήσεις
Πώς εγκαθιστώ το Aspose.Slides FOSS;
Προσθέστε την εξάρτηση Maven στο 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();
try {
System.out.println("Slides: " + prs.getSlides().size());
} finally {
prs.dispose();
}Δεν απαιτείται το Microsoft Office ή κάποιο άλλο runtime του συστήματος.
Γιατί πρέπει να καλέσω dispose() στο Presentation;
Η κλάση Presentation διαχειρίζεται εσωτερικούς πόρους πακέτου OPC. Χωρίς την κλήση του dispose(), αυτοί οι πόροι δεν απελευθερώνονται, κάτι που μπορεί να προκαλέσει διαρροές μνήμης ή κλειδώματα αρχείων. Πάντα χρησιμοποιήστε try-finally:
Presentation prs = new Presentation("input.pptx");
try {
// work here
prs.save("output.pptx", SaveFormat.PPTX);
} finally {
prs.dispose();
}Εναλλακτικά, χρησιμοποιήστε try-with-resources επειδή το Presentation υλοποιεί το AutoCloseable:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}Σε ποιες μορφές αρχείων μπορώ να αποθηκεύσω;
Η απαρίθμηση SaveFormat ορίζει σταθερές για πολλές μορφές — PPTX, PDF, HTML, SVG, JPEG, PNG, και άλλες — για συμβατότητα API με την εμπορική έκδοση. Στο χρόνο εκτέλεσης σε αυτήν την έκδοση FOSS, όλες οι υπερφορτώσεις save() αγνοούν το όρισμα μορφής και πάντα γράφουν έξοδο PPTX. Η μεταβίβαση του SaveFormat.PDF μεταγλωττίζεται σωστά, αλλά παράγει ένα αρχείο .pptx, όχι ένα .pdf.
import org.aspose.slides.foss.export.SaveFormat;
prs.save("output.pptx", SaveFormat.PPTX);Η εξαγωγή σε μορφές εκτός PPTX δεν είναι λειτουργικά διαθέσιμη σε αυτήν την έκδοση. Χρησιμοποιήστε SaveFormat.PPTX για όλες τις λειτουργίες αποθήκευσης.
Μπορώ να ανοίξω .ppt (παλαιά PowerPoint 97-2003) αρχεία;
Όχι. Μόνο τα αρχεία .pptx (Office Open XML) υποστηρίζονται. Η παλαιά δυαδική μορφή .ppt δεν υποστηρίζεται από αυτή τη βιβλιοθήκη.
Πώς μπορώ να έχω πρόσβαση στις διαφάνειες;
Οι διαφάνειες είναι μια συλλογή μηδενικής βάσης προσβάσιμη μέσω prs.getSlides():
ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();Πώς προσθέτω μια δεύτερη διαφάνεια;
Χρησιμοποιήστε prs.getSlides().addEmptySlide() με διάταξη:
try (Presentation prs = new Presentation()) {
ILayoutSlide layout = prs.getLayoutSlides().get(0);
prs.getSlides().addEmptySlide(layout);
ISlide slide2 = prs.getSlides().get(1);
prs.save("two-slides.pptx", SaveFormat.PPTX);
}Πώς ορίζω το χρώμα φόντου της διαφάνειας;
Το χρώμα φόντου της διαφάνειας δεν υποστηρίζεται σε αυτήν την έκδοση του Aspose.Slides FOSS. Δεν υπάρχει getBackground() μέθοδος στο ISlide ή σε οποιαδήποτε άλλη κλάση σε αυτή τη βιβλιοθήκη. Το φόντο της διαφάνειας είναι σταθερό όταν η παρουσίαση δημιουργείται από το πρότυπό της. Μια μελλοντική έκδοση μπορεί να προσθέσει έλεγχο φόντου.
Πώς χρησιμοποιώ NullableBool?
NullableBool είναι μια τρι‑κατάσταση enum που χρησιμοποιείται για ιδιότητες μορφοποίησης. Χρησιμοποιήστε NullableBool.TRUE (όχι το true της Java) για έντονη, πλάγια και παρόμοιες ιδιότητες:
import org.aspose.slides.foss.NullableBool;
fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);Γιατί η ρύθμιση του χρώματος κειμένου δεν έχει καμία επίδραση;
Πρέπει επίσης να ορίσετε το fillType σε FillType.SOLID πριν αναθέσετε το χρώμα:
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.drawing.Color;
fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 200, 0, 0));Μπορώ να χρησιμοποιήσω διαγράμματα ή SmartArt;
Όχι. Τα διαγράμματα, SmartArt, αντικείμενα OLE, κινήσεις, μεταβάσεις, υπερσυνδέσεις, μακροεντολές VBA και ψηφιακές υπογραφές δεν υλοποιούνται σε αυτήν την έκδοση και προκαλούν UnsupportedOperationException.
Η βιβλιοθήκη είναι thread-safe;
Κάθε αντικείμενο Presentation είναι ανεξάρτητο. Η δημιουργία και χρήση ξεχωριστών στιγμιοτύπων Presentation από ξεχωριστά νήματα είναι ασφαλής, εφόσον δεν μοιράζεστε ένα μόνο αντικείμενο Presentation μεταξύ νημάτων χωρίς εξωτερικό συγχρονισμό.
Πώς ενσωματώνω μια εικόνα;
Διαβάστε τα byte της εικόνας και προσθέστε τα στο prs.getImages(), στη συνέχεια δημιουργήστε ένα PictureFrame:
import org.aspose.slides.foss.ShapeType;
byte[] imageData = java.nio.file.Files.readAllBytes(
java.nio.file.Paths.get("logo.png")
);
IPPImage image = prs.getImages().addImage(imageData);
slide.getShapes().addPictureFrame(ShapeType.RECTANGLE, 50, 50, 200, 150, image);