Ouvrir une présentation en Java

En plus de créer des présentations PowerPoint à partir de zéro, Aspose.Slides vous permet d’ouvrir des présentations existantes. Une fois que vous avez chargé une présentation, vous pouvez obtenir des informations sur la présentation, modifier la présentation (contenu de ses diapositives), ajouter de nouvelles diapositives ou en supprimer des existantes, etc.

Ouvrir une présentation

Pour ouvrir une présentation existante, il vous suffit d’instancier la classe Presentation et de passer le chemin du fichier (de la présentation que vous souhaitez ouvrir) à son constructeur.

Ce code Java vous montre comment ouvrir une présentation et également découvrir le nombre de diapositives qu’elle contient :

// Instancie la classe Presentation et passe le chemin du fichier à son constructeur
Presentation pres = new Presentation("Presentation.pptx");
try {
    // Affiche le nombre total de diapositives présentes dans la présentation
    System.out.println(pres.getSlides().size());
} finally {
    if (pres != null) pres.dispose();
}

Ouvrir une présentation protégée par mot de passe

Lorsque vous devez ouvrir une présentation protégée par mot de passe, vous pouvez passer le mot de passe via la propriété Password (de la classe LoadOptions) pour déchiffrer la présentation et charger la présentation. Ce code Java illustre l’opération :

LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("VOTRE_MOT_DE_PASSE");
Presentation pres = new Presentation("pres.pptx", loadOptions);
try {
 // Faites quelques travaux avec la présentation déchiffrée
 } finally {
     if (pres != null) pres.dispose();
 }

Ouvrir une grande présentation

Aspose.Slides propose des options (la propriété BlobManagementOptions en particulier) dans la classe LoadOptions pour vous permettre de charger de grandes présentations.

Ce code Java démontre une opération dans laquelle une grande présentation (disons 2 Go de taille) est chargée :

LoadOptions loadOptions = new LoadOptions();
loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(PresentationLockingBehavior.KeepLocked);
loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true);
loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(0L);

Presentation pres = new Presentation("veryLargePresentation.pptx", loadOptions);
try {
    // La grande présentation a été chargée et peut être utilisée, mais la consommation de mémoire reste faible.
    // effectue des changements dans la présentation.
    pres.getSlides().get_Item(0).setName("Très grande présentation");

    // La présentation sera enregistrée dans un autre fichier. La consommation de mémoire reste faible pendant l'opération
    pres.save("veryLargePresentation-copy.pptx", SaveFormat.Pptx);
} finally {
    if(pres != null) pres.dispose();
}

Charger la présentation

Aspose.Slides fournit IResourceLoadingCallback avec une seule méthode pour vous permettre de gérer des ressources externes. Ce code Java vous montre comment utiliser l’interface IResourceLoadingCallback :

LoadOptions opts = new LoadOptions();
opts.setResourceLoadingCallback(new ImageLoadingHandler());

Presentation pres = new Presentation("presentation.pptx", opts);
class ImageLoadingHandler implements IResourceLoadingCallback 
{
    public int resourceLoading(IResourceLoadingArgs args) 
    {
        if (args.getOriginalUri().endsWith(".jpg")) 
        {
            try // charge une image de substitution
            {
                byte[] imageBytes = Files.readAllBytes(new File("aspose-logo.jpg").toPath());
                args.setData(imageBytes);
                return ResourceLoadingAction.UserProvided;
            } catch (RuntimeException ex) {
                return ResourceLoadingAction.Skip;
            }  catch (IOException ex) {
                ex.printStackTrace();
            }
        } else if (args.getOriginalUri().endsWith(".png")) {
            // définit l'url de substitution
            args.setUri("http://www.google.com/images/logos/ps_logo2.png");
            return ResourceLoadingAction.Default;
        }
        // ignore toutes les autres images
        return ResourceLoadingAction.Skip;
    }
}

Charger la présentation sans objets binaires intégrés

La présentation PowerPoint peut contenir les types suivants d’objets binaires intégrés :

En utilisant la propriété ILoadOptions.DeleteEmbeddedBinaryObjects, vous pouvez charger la présentation sans aucun objet binaire intégré.

Cette propriété peut être utile pour supprimer un contenu binaire potentiellement malveillant.

Le code démontre comment charger et enregistrer une présentation sans contenu malveillant :

LoadOptions loadOptions = new LoadOptions();
loadOptions.setDeleteEmbeddedBinaryObjects(true);

Presentation pres = new Presentation("malware.ppt", loadOptions);
try {
    pres.save("clean.ppt", SaveFormat.Ppt);
} finally {
    if (pres != null) pres.dispose();
}

Ouvrir et enregistrer la présentation

Étapes pour ouvrir et enregistrer la présentation :

  1. Créez une instance de la classe Presentation et passez le fichier que vous souhaitez ouvrir.
  2. Enregistrez la présentation.
// Instancie un objet Presentation qui représente un fichier PPT
Presentation pres = new Presentation();
try {
    // ...faites quelques travaux ici...
    
    // Enregistre votre présentation dans un fichier
    pres.save("demoPass.pptx", com.aspose.slides.SaveFormat.Pptx);
} finally {
    if(pres != null) pres.dispose();
}