Opérations de présentation low-code en Java
Vue d’ensemble
Le package com.aspose.slides fournit des classes d’assistance statiques pour les opérations courantes sur les présentations. Ces assistants encapsulent les flux de travail du modèle d’objet fréquemment utilisés dans des méthodes ciblées, de sorte que vous pouvez convertir ou fusionner des fichiers, traiter les éléments d’une présentation, collecter les formes et supprimer le contenu inutilisé avec moins de code.
Les assistants à faible code sont les plus utiles lorsque l’opération s’applique à un fichier ou une présentation entière et que le flux de travail par défaut répond à vos exigences. Utilisez le modèle d’objet complet Aspose.Slides lorsque vous avez besoin d’un contrôle fin sur des diapositives individuelles, des maîtres, des dispositions, des formes, des paramètres d’exportation ou les relations entre les éléments d’une présentation.
Le tableau suivant résume les assistants disponibles :
| Assistant | Utilisation |
|---|---|
| Convert | Conversion d’une présentation vers un autre format avec un appel direct fichier‑à‑fichier. |
| Merger | Combinaison de fichiers de présentation complets du même format. |
| ForEach | Exécution d’une action pour chaque diapositive, forme, paragraphe ou portion de texte. |
| Collect | Récupération des formes de toute la présentation pour un traitement ou une analyse répétés. |
| Compress | Suppression des maîtres et dispositions inutilisés et réduction des données de polices incorporées. |
Convertir une présentation
Utilisez Convert.autoByExtension lorsque l’extension du fichier de sortie suffit à sélectionner le format d’exportation. La méthode ouvre la présentation source, détermine le format requis à partir du chemin de sortie et écrit le résultat.
import com.aspose.slides.Convert;
Convert.autoByExtension("input.pptx", "output.pdf");
La classe Convert propose également des méthodes dédiées pour la sortie PDF, SVG, JPEG, PNG et TIFF. Utilisez le modèle d’objet complet lorsque vous devez inspecter ou modifier la présentation avant l’exportation ou configurer une option d’exportation qui n’est pas exposée par l’assistant sélectionné. Consultez Convert Presentation pour les flux de travail et options spécifiques à chaque format.
Fusionner des présentations
Utilisez Merger.process pour combiner des fichiers de présentation complets en un seul appel. Les présentations d’entrée doivent avoir le même format de fichier.
import com.aspose.slides.Merger;
String[] inputFiles = { "part-1.pptx", "part-2.pptx" };
Merger.process(inputFiles, "merged.pptx");
L’assistant est approprié lorsque toutes les diapositives doivent être ajoutées à un résultat unique sans les sélectionner ou les remapper individuellement. Utilisez le modèle d’objet complet lorsque vous devez fusionner des diapositives sélectionnées, appliquer un maître ou une disposition de destination, préserver explicitement les sections ou harmoniser des tailles de diapositive différentes. Consultez Merge Presentations pour ces scénarios.
Itérer sur les éléments d’une présentation
La classe ForEach invoque un rappel pour chaque type d’élément de présentation demandé. Elle évite les boucles de collection imbriquées et est pratique pour une inspection ou des changements de mise en forme à l’échelle de la présentation.
L’exemple suivant utilise ForEach.slide, ForEach.shape, ForEach.paragraph, et ForEach.portion pour inspecter les éléments correspondants :
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
ForEach.slide(presentation, (slide, index) -> {
System.out.println(String.format("Slide %d: %d shapes", index, slide.getShapes().size()));
});
ForEach.shape(presentation, (shape, slide, index) -> {
System.out.println(String.format("Shape %d on %s: %s", index, slide.getClass().getSimpleName(), shape.getName()));
});
ForEach.paragraph(presentation, (paragraph, slide, index) -> {
System.out.println(String.format("Paragraph %d on %s: %s", index, slide.getClass().getSimpleName(), paragraph.getText()));
});
ForEach.portion(presentation, (portion, paragraph, slide, index) -> {
System.out.println(String.format("Portion %d on %s: %s", index, slide.getClass().getSimpleName(), portion.getText()));
});
} finally {
presentation.dispose();
}
Par défaut, le parcours des formes et du texte à l’échelle de la présentation inclut les diapositives normales, maîtres et de disposition. Les surcharges avec un paramètre includeNotes peuvent également traiter les diapositives de notes. Utilisez des boucles de collection directes lorsque l’ordre de parcours, une sortie anticipée, un filtrage avant l’invocation du rappel ou un contrôle détaillé parent‑enfant est important.
Collecter les formes
Utilisez Collect.shapes lorsque vous avez besoin d’une collection de toutes les formes d’une présentation plutôt que d’un rappel pour chaque forme. Cela est utile lorsque le même ensemble sera filtré, compté ou traité plusieurs fois.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Iterable<Shape> shapes = Collect.shapes(presentation);
for (Shape shape : shapes) {
System.out.println(String.format("%s: %s", shape.getName(), shape.getClass().getSimpleName()));
}
} finally {
presentation.dispose();
}
Utilisez ForEach.shape à la place lorsque chaque forme peut être traitée immédiatement et que vous n’avez pas besoin de conserver le résultat collecté.
Compresser le contenu d’une présentation
La classe Compress peut supprimer les éléments structurels inutilisés et réduire les données de polices incorporées :
- Compress.removeUnusedLayoutSlides supprime les diapositives de disposition qui ne sont référencées par aucune diapositive normale.
- Compress.removeUnusedMasterSlides supprime les maîtres qui ne sont plus utilisés.
- Compress.compressEmbeddedFonts supprime les caractères inutilisés des polices incorporées.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Compress.removeUnusedLayoutSlides(presentation);
Compress.removeUnusedMasterSlides(presentation);
Compress.compressEmbeddedFonts(presentation);
presentation.save("compressed.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Supprimez d’abord les dispositions inutilisées, puis les maîtres inutilisés afin qu’un maître devenant non référencé après le nettoyage des dispositions puisse également être supprimé. Enregistrez la présentation optimisée dans un nouveau fichier si vous devez éventuellement conserver les maîtres, les dispositions ou les données complètes des polices incorporées d’origine. Pour plus de détails, consultez Slide Master et Embedded Font.
FAQ
Quand faut‑il utiliser l’API à faible code plutôt que le modèle d’objet complet ?
Utilisez les assistants à faible code lorsqu’une opération standard s’applique à un fichier ou une présentation complète et ne nécessite pas de contrôle détaillé sur des éléments individuels. Utilisez le modèle d’objet complet lorsque vous devez sélectionner des diapositives spécifiques, contrôler les relations entre maîtres et dispositions, inspecter l’état intermédiaire ou configurer un comportement que l’assistant n’expose pas.
Le Merger peut‑il combiner des présentations dans des formats de fichier différents ?
Non. Merger.process exige que les présentations d’entrée soient dans le même format. Convertissez d’abord les fichiers d’entrée vers un format commun, par exemple avec Convert.autoByExtension, puis fusionnez les fichiers convertis.
ForEach traite‑t‑il les diapositives maître, disposition et notes ?
ForEach.slide parcourt les diapositives normales de la présentation. Les opérations à l’échelle de la présentation ForEach.shape, ForEach.paragraph, et ForEach.portion incluent par défaut les diapositives normales, maîtres et de disposition. Utilisez leurs surcharges avec includeNotes à true pour inclure les diapositives de notes.
Quelle est la différence entre ForEach.shape et Collect.shapes ?
Utilisez ForEach.shape pour traiter chaque forme immédiatement via un rappel. Utilisez Collect.shapes lorsque vous avez besoin d’un résultat itérable qui peut être conservé, filtré, compté ou parcouru plusieurs fois.
Compress rend‑il toujours le fichier de présentation plus petit ?
Pas nécessairement. Le résultat dépend de la présence ou non de dispositions inutilisées, de maîtres inutilisés ou de polices incorporées contenant des caractères inutilisés. Si aucun de ces éléments n’est présent, les opérations Compress correspondantes peuvent ne pas réduire la taille du fichier.
Les modifications effectuées par ForEach ou Compress sont‑elles enregistrées automatiquement ?
Non. Ces assistants agissent sur l’objet Presentation chargé en mémoire. Après avoir modifié des éléments dans un rappel ForEach ou exécuté Compress, appelez Presentation.save pour écrire le résultat.