Enregistrer des présentations sur Android

Aperçu

Open Presentations on Android décrit comment utiliser la classe Presentation pour ouvrir une présentation. Cet article explique comment créer et enregistrer des présentations. La classe Presentation contient le contenu d’une présentation. Que vous créiez une présentation à partir de zéro ou que vous en modifiiez une existante, vous voudrez l’enregistrer une fois terminé. Avec Aspose.Slides pour Android, vous pouvez enregistrer dans un file ou un stream. Cet article décrit les différentes manières d’enregistrer une présentation.

Enregistrer les présentations dans des fichiers

Enregistrez une présentation dans un fichier en appelant la méthode save de la classe Presentation. Passez le nom du fichier et le format d’enregistrement à la méthode. L’exemple suivant montre comment enregistrer une présentation avec Aspose.Slides.

import com.aspose.slides.*;

// Instanciez la classe Presentation qui représente un fichier de présentation.
Presentation presentation = new Presentation();
try {
    // Effectuez un travail ici...

    // Enregistrez la présentation dans un fichier.
    presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Enregistrer les présentations dans des flux

Vous pouvez enregistrer une présentation dans un flux en transmettant un flux de sortie à la méthode save de la classe Presentation. Une présentation peut être écrite dans de nombreux types de flux. Dans l’exemple ci‑dessous, nous créons une nouvelle présentation et l’enregistrons dans un flux de fichier.

import com.aspose.slides.*;
import java.io.FileOutputStream;
import java.io.OutputStream;

// Instanciez la classe Presentation qui représente un fichier de présentation.
Presentation presentation = new Presentation();
try {
    OutputStream fileStream = new FileOutputStream("Output.pptx");
    try {
        // Enregistrez la présentation dans le flux.
        presentation.save(fileStream, SaveFormat.Pptx);
    } finally {
        fileStream.close();
    }
} finally {
    presentation.dispose();
}

Enregistrer les présentations avec un type de vue prédéfini

Aspose.Slides vous permet de définir la vue initiale que PowerPoint utilise lorsque la présentation générée s’ouvre via la classe ViewProperties. Utilisez la méthode setLastView avec une valeur de l’énumération ViewType.

import com.aspose.slides.*;

Presentation presentation = new Presentation();
try {
    presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
    presentation.save("SlideMasterView.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Enregistrer les présentations au format Strict Office Open XML

Aspose.Slides vous permet d’enregistrer une présentation au format Strict Office Open XML. Utilisez la classe PptxOptions et définissez sa propriété conformance lors de l’enregistrement. Si vous définissez Conformance.Iso29500_2008_Strict, le fichier de sortie est enregistré au format Strict Office Open XML.

L’exemple ci‑dessous crée une présentation et l’enregistre au format Strict Office Open XML.

import com.aspose.slides.*;

PptxOptions options = new PptxOptions();
options.setConformance(Conformance.Iso29500_2008_Strict);

// Instanciez la classe Presentation qui représente un fichier de présentation.
Presentation presentation = new Presentation();
try {
    // Enregistrez la présentation au format Strict Office Open XML.
    presentation.save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
} finally {
    presentation.dispose();
}

Enregistrer les présentations au format Office Open XML en mode Zip64

Un fichier Office Open XML est une archive ZIP qui impose des limites de 4 Go (2^32 octets) sur la taille non compressée de tout fichier, la taille compressée de tout fichier et la taille totale de l’archive, ainsi qu’une limite de 65 535 (2^16‑1) fichiers. Les extensions de format ZIP64 augmentent ces limites à 2^64.

La méthode IPptxOptions.setZip64Mode vous permet de choisir quand utiliser les extensions de format ZIP64 lors de l’enregistrement d’un fichier Office Open XML.

Cette méthode peut être utilisée avec les modes suivants :

  • IfNecessary utilise les extensions ZIP64 uniquement si la présentation dépasse les limitations ci‑dessus. C’est le mode par défaut.
  • Never n’utilise jamais les extensions ZIP64.
  • Always utilise toujours les extensions ZIP64.

Le code suivant montre comment enregistrer une présentation en tant que fichier PPTX avec les extensions ZIP64 activées :

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setZip64Mode(Zip64Mode.Always);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("OutputZip64.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

Enregistrer les présentations au format Office Open XML avec niveaux de compression

Lorsque vous travaillez avec de grandes présentations, vous pouvez ajuster le niveau de compression afin d’équilibrer la taille du fichier et le temps de traitement. Selon vos besoins, vous préférez peut‑être un traitement plus rapide ou des fichiers de sortie plus petits.

Aspose.Slides fournit la méthode IPptxOptions.setCompressionLevel qui vous permet de spécifier le niveau de compression utilisé lors de l’enregistrement d’une présentation au format Office Open XML.

Les niveaux de compression suivants sont disponibles :

  • None : aucune compression n’est appliquée. Les fichiers sont conservés tels quels.
  • Level1 : la compression la plus rapide avec le ratio le plus faible.
  • Level2 : compression plus rapide avec un ratio légèrement meilleur que Level1.
  • Level3 : offre une meilleure compression que Level2 avec un impact modéré sur le temps de traitement.
  • Level4 : offre une meilleure compression que Level3.
  • Level5 : améliore la compression par rapport à Level4 avec un temps de traitement supplémentaire.
  • Level6 : compression standard qui offre un bon équilibre entre vitesse de traitement et taille du fichier. C’est le niveau de compression par défaut.
  • Level7 : fournit une meilleure compression que Level6 avec un traitement plus lent.
  • Level8 : fournit une meilleure compression que Level7.
  • Level9 : compression maximale. Produit la plus petite taille de fichier au prix du temps de traitement le plus long.

L’exemple suivant montre comment enregistrer une présentation en tant que fichier PPTX sans compression :

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setCompressionLevel(CompressionLevel.None);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Sample-out.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

Cet exemple montre comment enregistrer une présentation en tant que fichier PPTX avec la compression maximale :

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setCompressionLevel(CompressionLevel.Level9);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Sample-level9.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

Enregistrer les présentations sans actualiser la vignette

La méthode PptxOptions.setRefreshThumbnail contrôle la génération de la vignette lors de l’enregistrement d’une présentation au format PPTX :

  • Si elle est définie sur true, la vignette est actualisée pendant l’enregistrement. C’est la valeur par défaut.
  • Si elle est définie sur false, la vignette actuelle est conservée. Si la présentation ne possède aucune vignette, aucune n’est générée.

Dans le code ci‑dessous, la présentation est enregistrée au format PPTX sans actualiser sa vignette.

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setRefreshThumbnail(false);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Output.pptx", SaveFormat.Pptx, pptxOptions);
}
finally {
    presentation.dispose();
}

Enregistrer les mises à jour de progression en pourcentage

L’interface IProgressCallback est utilisée via la méthode setProgressCallback exposée par l’interface ISaveOptions et la classe abstraite SaveOptions. Implémentez IProgressCallback et passez‑la à setProgressCallback pour recevoir des mises à jour de la progression d’enregistrement en pourcentage.

Les extraits de code suivants montrent comment utiliser IProgressCallback.

import com.aspose.slides.*;

ISaveOptions saveOptions = new PdfOptions();
saveOptions.setProgressCallback(new ExportProgressHandler());

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Output.pdf", SaveFormat.Pdf, saveOptions);
} finally {
    presentation.dispose();
}
import com.aspose.slides.*;

class ExportProgressHandler implements IProgressCallback {
    public void reporting(double progressValue) {
        // Utilisez la valeur du pourcentage de progression ici.
        int progress = (int) progressValue;

        System.out.println(progress + "% of the file has been converted.");
    }
}

FAQ

La « sauvegarde rapide » (sauvegarde incrémentielle) est‑elle prise en charge pour n’écrire que les changements ?

Non. L’enregistrement crée le fichier cible complet à chaque fois ; la « sauvegarde rapide » incrémentielle n’est pas prise en charge.

Est‑il sûr d’enregistrer la même instance de Presentation depuis plusieurs threads ?

Non. Une Presentation n’est pas thread‑safe (/slides/fr/androidjava/multithreading/) ; enregistrez‑la depuis un seul thread.

Que se passe‑t‑il avec les hyperliens et les fichiers liés externes lors de l’enregistrement ?

Les Hyperlinks sont conservés. Les fichiers liés externes (par ex. : vidéos via des chemins relatifs) ne sont pas copiés automatiquement — assurez‑vous que les chemins référencés restent accessibles.

Puis‑je définir/enregistrer les métadonnées du document (Auteur, Titre, Société, Date) ?

Oui. Les propriétés du document standard sont prises en charge et seront écrites dans le fichier lors de l’enregistrement.