Άνοιγμα Παρουσιάσεων σε 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);

Έλεγχος Εξωτερικών Πόρων

Το 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 μπορεί να περιέχει τους ακόλουθους τύπους ενσωματωμένων δυαδικών αντικειμένων:

Χρησιμοποιώντας τη μέθοδο 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.

Τι συμβαίνει αν λείπουν τα απαιτούμενα γραμματοσειρά όταν ανοίγετε;

Το αρχείο θα ανοίξει, αλλά αργότερα η απόδοση/εξαγωγή μπορεί να αντικαταστήσει τις γραμματοσειρές. Διαμόρφωση αντικατάστασης γραμματοσειρών ή προσθήκη των απαιτούμενων γραμματοσειρών στο περιβάλλον εκτέλεσης.

Τι γίνεται με τα ενσωματωμένα πολυμέσα (βίντεο/ήχος) κατά το άνοιγμα;

Γίνονται διαθέσιμα ως πόροι της παρουσίασης. Εάν τα μέσα αναφέρονται μέσω εξωτερικών διαδρομών, βεβαιωθείτε ότι αυτές οι διαδρομές είναι προσβάσιμες στο περιβάλλον σας· διαφορετικά η απόδοση/εξαγωγή μπορεί να παραλείψει τα μέσα.