Άνοιγμα Παρουσιάσεων σε JavaScript
Εισαγωγή
Πέρα από τη δημιουργία παρουσιάσεων PowerPoint από το μηδέν, το Aspose.Slides σάς επιτρέπει επίσης να ανοίγετε υπάρχουσες παρουσιάσεις. Αφού φορτώσετε μια παρουσίαση, μπορείτε να ανακτήσετε πληροφορίες σχετικά με αυτήν, να επεξεργαστείτε το περιεχόμενο των διαφάνειων, να προσθέσετε νέες διαφάνειες, να αφαιρέσετε υπάρχουσες και πολλά άλλα.
Άνοιγμα Παρουσιάσεων
Για να ανοίξετε μια υπάρχουσα παρουσίαση, δημιουργήστε ένα αντικείμενο της κλάσης Presentation και περάστε τη διαδρομή του αρχείου στον κατασκευαστή του.
Το παρακάτω παράδειγμα JavaScript δείχνει πώς να ανοίξετε μια παρουσίαση και να λάβετε τον αριθμό των διαφανειών της:
// Δημιουργήστε το αντικείμενο της κλάσης Presentation και περάστε τη διαδρομή ενός αρχείου στον κατασκευαστή του.
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
// Εκτυπώστε το συνολικό αριθμό διαφανειών στην παρουσίαση.
console.log(presentation.getSlides().size());
} finally {
presentation.dispose();
}
Άνοιγμα Παρουσιάσεων με Κωδικό Πρόσβασης
Όταν χρειάζεται να ανοίξετε μια παρουσίαση με κωδικό προστασίας, περάστε τον κωδικό μέσω της μεθόδου setPassword της κλάσης LoadOptions για να την αποκρυπτογραφήσετε και να τη φορτώσετε. Το παρακάτω κώδικας JavaScript δείχνει αυτή τη λειτουργία:
let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setPassword("YOUR_PASSWORD");
let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions);
try {
// Εκτελέστε λειτουργίες στην αποκρυπτογραφημένη παρουσίαση.
} finally {
presentation.dispose();
}
Άνοιγμα Μεγάλων Παρουσιάσεων
Το Aspose.Slides προσφέρει επιλογές—ιδιαίτερα τη μέθοδο getBlobManagementOptions στην κλάση LoadOptions—για να σας βοηθήσουν να φορτώσετε μεγάλες παρουσιάσεις.
Το παρακάτω κώδικας JavaScript δείχνει τη φόρτωση μιας μεγάλης παρουσίασης (π.χ., 2 GB):
const filePath = "LargePresentation.pptx";
let loadOptions = new aspose.slides.LoadOptions();
// Επιλέξτε τη συμπεριφορά KeepLocked—το αρχείο της παρουσίασης θα παραμείνει κλειδωμένο για τη διάρκεια του
// του αντικειμένου Presentation, αλλά δεν χρειάζεται να φορτωθεί στη μνήμη ή να αντιγραφεί σε προσωρινό αρχείο.
loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked);
loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true);
loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 MB
let presentation = new aspose.slides.Presentation(filePath, loadOptions);
try {
// Η μεγάλη παρουσίαση έχει φορτωθεί και μπορεί να χρησιμοποιηθεί, ενώ η κατανάλωση μνήμης παραμένει χαμηλή.
// Κάντε αλλαγές στην παρουσίαση.
presentation.getSlides().get_Item(0).setName("Large presentation");
// Αποθηκεύστε την παρουσίαση σε άλλο αρχείο. Η κατανάλωση μνήμης παραμένει χαμηλή κατά τη διάρκεια αυτής της λειτουργίας.
presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx);
// Μην το κάνετε αυτό! Θα προκληθεί εξαίρεση I/O επειδή το αρχείο είναι κλειδωμένο μέχρι να διαγραφεί το αντικείμενο παρουσίασης.
//fs.unlinkSync(filePath);
} finally {
presentation.dispose();
}
// Είναι εντάξει να το κάνετε εδώ. Το αρχείο προέλευσης δεν είναι πλέον κλειδωμένο από το αντικείμενο παρουσίασης.
fs.unlinkSync(filePath);
Info
Για να ξεπεράσετε ορισμένους περιορισμούς κατά τη χρήση ροών, το Aspose.Slides ενδέχεται να αντιγράψει τα περιεχόμενα μιας ροής. Η φόρτωση μιας μεγάλης παρουσίασης από ροή προκαλεί το αντίγραφο της παρουσίασης και μπορεί να επιβραδύνει τη φόρτωση. Συνεπώς, όταν χρειάζεται να φορτώσετε μια μεγάλη παρουσίαση, συνιστούμε ουσιαστικά να χρησιμοποιήσετε τη διαδρομή του αρχείου παρουσίασης αντί για ροή.
Κατά τη δημιουργία μιας παρουσίασης που περιέχει μεγάλα αντικείμενα (βίντεο, ήχο, εικόνες υψηλής ανάλυσης κ.λπ.), μπορείτε να χρησιμοποιήσετε τη Διαχείριση BLOB για να μειώσετε τη χρήση μνήμης.
Έλεγχος Εξωτερικών Πόρων
Το Aspose.Slides παρέχει τη διεπαφή IResourceLoadingCallback που σας επιτρέπει να διαχειρίζεστε εξωτερικούς πόρους. Το παρακάτω κώδικας JavaScript δείχνει πώς να χρησιμοποιήσετε τη διεπαφή IResourceLoadingCallback:
const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", {
resourceLoading: function(args) {
if (args.getOriginalUri().endsWith(".jpg")) {
try {
// Φορτώστε μια εναλλακτική εικόνα.
const imageData = fs.readFileSync("aspose-logo.jpg");
args.setData(imageData);
return aspose.slides.ResourceLoadingAction.UserProvided;
} catch {
return aspose.slides.ResourceLoadingAction.Skip;
}
} else if (args.getOriginalUri().endsWith(".png")) {
// Ορίστε ένα εναλλακτικό URL.
args.setUri("http://www.google.com/images/logos/ps_logo2.png");
return aspose.slides.ResourceLoadingAction.Default;
}
// Παραλείψτε όλες τις άλλες εικόνες.
return aspose.slides.ResourceLoadingAction.Skip;
}
});
let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setResourceLoadingCallback(ImageLoadingHandler);
let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions);
Φόρτωση Παρουσιάσεων Χωρίς Ενσωματωμένα Δυαδικά Αντικείμενα
Μια παρουσίαση PowerPoint μπορεί να περιέχει τους ακόλουθους τύπους ενσωματωμένων δυαδικών αντικειμένων:
- VBA project (προσιτό μέσω του Presentation.getVbaProject);
- OLE object embedded data (προσιτό μέσω του OleEmbeddedDataInfo.getEmbeddedFileData);
- ActiveX control binary data (προσιτό μέσω του Control.getActiveXControlBinary).
Χρησιμοποιώντας τη μέθοδο LoadOptions.setDeleteEmbeddedBinaryObjects, μπορείτε να φορτώσετε μια παρουσίαση χωρίς κανένα ενσωματωμένο δυαδικό αντικείμενο.
Αυτή η μέθοδος είναι χρήσιμη για την αφαίρεση ενδεχομένως κακόβουλου δυαδικού περιεχομένου. Το παρακάτω κώδικας JavaScript δείχνει πώς να φορτώσετε μια παρουσίαση χωρίς κανένα ενσωματωμένο δυαδικό περιεχόμενο:
let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setDeleteEmbeddedBinaryObjects(true);
let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions);
try {
// Εκτελέστε λειτουργίες στην παρουσίαση.
} finally {
presentation.dispose();
}
Συχνές Ερωτήσεις
Πώς μπορώ να διαπιστώ ότι ένα αρχείο είναι κατεστραμμένο και δεν μπορεί να ανοιχθεί;
Θα λάβετε μια εξαίρεση ανάλυσης/επικύρωσης μορφής κατά τη φόρτωση. Συχνά τέτοια σφάλματα αναφέρουν μη έγκυρη δομή ZIP ή σπασμένες εγγραφές PowerPoint.
Τι συμβαίνει αν λείπουν τα απαιτούμενα γραμματοσειρά όταν ανοίγετε;
Το αρχείο θα ανοίξει, αλλά αργότερα η απόδοση/εξαγωγή μπορεί να αντικαταστήσει τις γραμματοσειρές. Διαμόρφωση αντικατάστασης γραμματοσειρών ή προσθήκη των απαιτούμενων γραμματοσειρών στο περιβάλλον εκτέλεσης.
Τι γίνεται με τα ενσωματωμένα πολυμέσα (βίντεο/ήχος) κατά το άνοιγμα;
Γίνονται διαθέσιμα ως πόροι της παρουσίασης. Εάν τα μέσα αναφέρονται μέσω εξωτερικών διαδρομών, βεβαιωθείτε ότι αυτές οι διαδρομές είναι προσβάσιμες στο περιβάλλον σας· διαφορετικά η απόδοση/εξαγωγή μπορεί να παραλείψει τα μέσα.