Άνοιγμα Παρουσιάσεων σε .NET

Εισαγωγή

Πέρα από τη δημιουργία παρουσιάσεων PowerPoint από το μηδέν, το Aspose.Slides σας επιτρέπει επίσης να ανοίξετε υπάρχουσες παρουσιάσεις. Μετά τη φόρτωση μιας παρουσίασης, μπορείτε να ανακτήσετε πληροφορίες σχετικά με αυτήν, να επεξεργαστείτε το περιεχόμενο των διαφανειών, να προσθέσετε νέες διαφάνειες, να αφαιρέσετε υπάρχουσες και πολλά άλλα.

Άνοιγμα Παρουσιάσεων

Για να ανοίξετε μια υπάρχουσα παρουσίαση, δημιουργήστε μια παρουσία της κλάσης Presentation και περάστε τη διαδρομή του αρχείου στον κατασκευαστή της.

Το παρακάτω παράδειγμα C# δείχνει πώς να ανοίξετε μια παρουσίαση και να λάβετε τον αριθμό των διαφανειών της:

// Δημιουργήστε ένα αντίτυπο της κλάσης Presentation και περάστε μια διαδρομή αρχείου στον κατασκευαστή της.
using (Presentation presentation = new Presentation("Sample.pptx"))
{
    // Εκτυπώστε τον συνολικό αριθμό διαφανειών στην παρουσίαση.
    System.Console.WriteLine(presentation.Slides.Count);
}

Άνοιγμα Παρουσιάσεων με Προστασία Κωδικού

Όταν χρειάζεται να ανοίξετε μια παρουσίαση με προστασία κωδικού, περάστε τον κωδικό μέσω της ιδιότητας Password της κλάσης LoadOptions για να την αποκρυπτογραφήσετε και να τη φορτώσετε. Το παρακάτω κώδικας C# επιδεικνύει αυτή τη λειτουργία:

LoadOptions loadOptions = new LoadOptions {Password = "YOUR_PASSWORD"};
using (Presentation presentation = new Presentation("Sample.pptx", loadOptions))
{
    // Πραγματοποιήστε λειτουργίες στην αποκρυπτογραφημένη παρουσίαση.
}

Άνοιγμα Μεγάλων Παρουσιάσεων

Το Aspose.Slides παρέχει επιλογές—ιδιαίτερα την ιδιότητα BlobManagementOptions στην κλάση LoadOptions—για να σας βοηθήσει να φορτώσετε μεγάλες παρουσιάσεις.

Το παρακάτω κώδικας C# δείχνει πώς να φορτώσετε μια μεγάλη παρουσίαση (για παράδειγμα, 2 GB):

const string filePath = "LargePresentation.pptx";

LoadOptions loadOptions = new LoadOptions
{
    BlobManagementOptions = 
    {
        // Επιλέξτε τη συμπεριφορά KeepLocked—το αρχείο παρουσίασης θα παραμείνει κλειδωμένο για τη διάρκεια του 
        // της παρουσίας Presentation, αλλά δεν χρειάζεται να φορτωθεί στη μνήμη ή να αντιγραφεί σε προσωρινό αρχείο.
        PresentationLockingBehavior = PresentationLockingBehavior.KeepLocked,
        IsTemporaryFilesAllowed = true,
        MaxBlobsBytesInMemory = 10 * 1024 * 1024 // 10 MB
    }
};

using (Presentation presentation = new Presentation(filePath, loadOptions))
{
    // Η μεγάλη παρουσίαση έχει φορτωθεί και μπορεί να χρησιμοποιηθεί, ενώ η κατανάλωση μνήμης παραμένει χαμηλή.

    // Κάντε αλλαγές στην παρουσίαση.
    presentation.Slides[0].Name = "Large presentation";

    // Αποθηκεύστε την παρουσίαση σε άλλο αρχείο. Η κατανάλωση μνήμης παραμένει χαμηλή κατά τη διάρκεια αυτής της ενέργειας.
    presentation.Save("LargePresentation-copy.pptx", SaveFormat.Pptx);

    // Μην το κάνετε! Θα προκληθεί εξαίρεση I/O επειδή το αρχείο είναι κλειδωμένο μέχρι να καταργηθεί το αντικείμενο παρουσίασης.
    File.Delete(filePath);
}

// Είναι εντάξει να το κάνετε εδώ. Το αρχικό αρχείο δεν είναι πλέον κλειδωμένο από το αντικείμενο παρουσίασης.
File.Delete(filePath);

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

Το Aspose.Slides παρέχει τη διασύνδεση IResourceLoadingCallback που σας επιτρέπει να διαχειρίζεστε εξωτερικούς πόρους. Το παρακάτω κώδικας C# δείχνει πώς να χρησιμοποιήσετε τη διασύνδεση IResourceLoadingCallback:

LoadOptions loadOptions = new LoadOptions();
loadOptions.ResourceLoadingCallback = new ImageLoadingHandler();

Presentation presentation = new Presentation("Sample.pptx", loadOptions);
public class ImageLoadingHandler : IResourceLoadingCallback
{
    public ResourceLoadingAction ResourceLoading(IResourceLoadingArgs args)
    {
        if (args.OriginalUri.EndsWith(".jpg"))
        {
            try
            {
                // Φορτώστε μια εναλλακτική εικόνα.
                byte[] imageData = File.ReadAllBytes("aspose-logo.jpg");
                args.SetData(imageData);
                return ResourceLoadingAction.UserProvided;
            }
            catch (Exception)
            {
                return ResourceLoadingAction.Skip;
            }
        }
        else if (args.OriginalUri.EndsWith(".png"))
        {
            // Ορίστε μια εναλλακτική διεύθυνση URL.
            args.Uri = "http://www.google.com/images/logos/ps_logo2.png";
            return ResourceLoadingAction.Default;
        }

        // Παράλειψη όλων των άλλων εικόνων.
        return ResourceLoadingAction.Skip;
    }
}

Φόρτωση Παρουσιάσεων χωρίς Ενσωματωμένα Δυαδικά Αντικείμενα

Μια παρουσίαση PowerPoint μπορεί να περιέχει τους ακόλουθους τύπους ενσωματωμένων δυαδικών αντικειμένων:

Χρησιμοποιώντας την ιδιότητα ILoadOptions.DeleteEmbeddedBinaryObjects μπορείτε να φορτώσετε μια παρουσίαση χωρίς κανένα ενσωματωμένο δυαδικό αντικείμενο.

Αυτή η ιδιότητα είναι χρήσιμη για την αφαίρεση ενδεχομένως κακόβουλου δυαδικού περιεχομένου. Το παρακάτω κώδικας C# δείχνει πώς να φορτώσετε μια παρουσίαση χωρίς κανένα ενσωματωμένο δυαδικό περιεχόμενο:

LoadOptions loadOptions = new LoadOptions()
{
	DeleteEmbeddedBinaryObjects = true
}

using (Presentation presentation = new Presentation("malware.ppt", loadOptions))
{
    // Πραγματοποιήστε ενέργειες στην παρουσίαση.
}

ΣΥΧΝΑ ΕΡΩΤΗΜΑΤΑ

Πώς μπορώ να καταλάβω ότι ένα αρχείο είναι κατεστραμμένο και δεν μπορεί να ανοίξει;

Θα λάβετε μια εξαίρεση παρα parsing/validation μορφής κατά τη φόρτωση. Τέτοια σφάλματα συχνά αναφέρουν μια μη έγκυρη δομή ZIP ή κατεστραμμένες εγγραφές PowerPoint.

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

Το αρχείο θα ανοίξει, αλλά αργότερα το απόδοση/εξαγωγή μπορεί να αντικαταστήσει τις γραμματοσειρές. Configure font substitutions ή add the required fonts στο περιβάλλον εκτέλεσης.

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

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