Πώς να αποθηκεύσετε παρουσιάσεις στο Java
Aspose.Slides FOSS for Java saves presentations exclusively to .pptx Χρησιμοποιώντας τη μορφή prs.save(path, SaveFormat.PPTX).Αυτό το εγχειρίδιο καλύπτει το σωστό πρότυπο αποθήκευσης, την εξοικονόμηση σε διαφορετικό μονοπάτι και τα κοινά σφάλματα που σχετίζονται με την αποθηκεύση.
Βήμα προς βήμα οδηγός
Βήμα 1: Προσθέστε την εξάρτηση Maven
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>26.7.0</version>
</dependency>Βήμα 2: Ανοίξτε ή δημιουργήστε μια παρουσίαση
Πάντα χρησιμοποιήστε τους πόρους try-with. Η κλήση αποθήκευσης πρέπει να πραγματοποιείται μέσα στο μπλοκ δοκιμής.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
// Create new
try (Presentation prs = new Presentation()) {
prs.save("new.pptx", SaveFormat.PPTX);
}
// Open existing
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}Βήμα 3: Αποθηκεύστε μετά από όλες τις αλλαγές
τοποθετείτε το save() καλέστε ως την τελευταία δήλωση μέσα στο δοκιμαστικό μπλοκ, μετά από όλες τις τροποποιήσεις είναι πλήρεις.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 300, 100
);
shape.addTextFrame("Hello, World!");
prs.save("output.pptx", SaveFormat.PPTX);
}Βήμα 4: Αποθηκεύστε σε διαφορετικό δρόμο
Πηγαίνετε σε διαφορετική διαδρομή εκκίνησης για να δημιουργήσετε ένα νέο αρχείο χωρίς την τροποποίηση του πρωτότυπου:
try (Presentation prs = new Presentation("template.pptx")) {
// modify ...
prs.save("customized.pptx", SaveFormat.PPTX);
}Η template.pptx Το αρχείο δεν τροποποιείται.; customized.pptx Δημιουργήθηκε (ή υπεργραφεί αν ήδη υπάρχει).
Βήμα 5: Ελέγξτε την έξοδό σας
Μετά την αποχώρηση του μπλοκ δοκιμής, το αρχείο είναι πλήρες και κλειστό. ελέγξτε ότι υπάρχει:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Path output = Paths.get("output.pptx");
System.out.println("Saved: " + Files.exists(output)
+ ", size: " + Files.size(output) + " bytes");Υποστηρίζεται το Save Format
| ΤΕΧΝΗ | ΕΝΟΜ ΑΞΙΟΤΗΤΑ | Υποστηριζόμενοι |
|---|---|---|
| PPTX (Office Open XML) - Πλατφόρμα για το Office Open | SaveFormat.PPTX | ΝΑΙ |
| N/A | ΟΧΙ | |
| HTML | N/A | ΟΧΙ |
| SVG | N/A | ΟΧΙ |
| PNG / JPEG | N/A | ΟΧΙ |
| ΟΠΔ (OpenDocument) – Ανοιχτό έγγραφο | N/A | ΟΧΙ |
Μόνο το PPTX υποστηρίζεται πλήρως. περάσει οποιαδήποτε άλλη SaveFormat Αξία για prs.save(path, format) σιωπηλά αποθηκεύεται ως PPTX - δεν ρίχνεται καμία εξαίρεση και το επιχειρηματικό σχήμα αγνοείται. UnsupportedOperationException Μόνο που ρίχνεται από prs.save(ISaveOptions options),Όχι με τις υπερφόρτισεις που βασίζονται σε μορφή.
Κοινά προβλήματα και τακτοποιήσεις
java.io.IOException: Permission denied
Το αρχείο εξόδου ανοίγει σε άλλη εφαρμογή (π.χ., το PowerPoint έχει το αρχικό άνοιγμα).
Το αρχείο δημιουργείται αλλά εμφανίζεται κενό ή διαφθορά.
Ασφάλεια prs.save() καλείται μέσα στο μπλοκ δοκιμής, όχι μετά από αυτό. Μετά την έξοδο του μπλόκ των πόρων δοκίματος, η Presentation Το αντικείμενο διαγράφεται και οι επακόλουθες κλήσεις θα αποτύχουν.
UnsupportedOperationException Όταν η εξοικονόμηση
Αυτό συμβαίνει όταν χρησιμοποιείται prs.save(ISaveOptions options) - το ISaveOptions-η βάση υπερφόρτωσης δεν εφαρμόζεται. σημειώσεις: περάσει ένα μη-PPTX SaveFormat Για να prs.save(path, format) ΚΑΝΕΙ Όχι ρίξτε αυτή την εξαίρεση. σιωπηλά σώζεται ως PPTX.
Συχνές ερωτήσεις
Μπορώ να αποθηκεύσω στο ίδιο αρχείο που άνοιξα;?
Ναι. Αποθηκεύοντας στο ίδιο μονοπάτι υπερβαίνει το αρχικό αρχείο:
try (Presentation prs = new Presentation("deck.pptx")) {
// modify ...
prs.save("deck.pptx", SaveFormat.PPTX); // overwrites original
}Μπορώ να αποθηκεύσω σε ένα OutputStream;?
Ναι, το save() Η μέθοδος αποδέχεται ένα OutputStream:
import java.io.FileOutputStream;
try (Presentation prs = new Presentation();
FileOutputStream fos = new FileOutputStream("output.pptx")) {
prs.save(fos, SaveFormat.PPTX);
}Διατηρεί το περιεχόμενο που δεν έχω τροποποιήσει;?
Ναι. Άγνωστα τμήματα XML από το αρχικό αρχείο διατηρούνται verbatim. Η βιβλιοθήκη σεριαλίζει μόνο τα μέρη του μοντέλου εγγράφου που καταλαβαίνει και περνά μέσα από οποιοδήποτε XML δεν αναγνωρίζει.