Comment créer des présentations en Java
Aspose.Slides FOSS for Java vous permet de créer des présentations PowerPoint entièrement en Java sans dépendance à Microsoft Office. Ce guide montre comment créer une nouvelle présentation, ajouter des diapositives et des formes, formater le texte et enregistrer le résultat.
Guide étape par étape
Étape 1 : Ajouter la dépendance Maven
Ajoutez Aspose.Slides FOSS à votre pom.xml. Java 21 ou version ultérieure est requis.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Vérifiez l’installation :
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Étape 2 : Importer les classes requises
Importez la classe Presentation et l’énumération SaveFormat nécessaires pour l’enregistrement.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;Toutes les constantes de type de forme se trouvent dans org.aspose.slides.foss.ShapeType. Les énumérations de formatage (FillType, NullableBool) sont également dans org.aspose.slides.foss.
Étape 3 : Créer une présentation
Utilisez new Presentation() et encapsulez‑le dans try-with-resources. Une nouvelle présentation commence avec une diapositive vierge.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation()) {
System.out.println("Slides in new presentation: " + prs.getSlides().size());
prs.save("output.pptx", SaveFormat.PPTX);
}Important : Utilisez toujours try-with-resources ou appelez prs.dispose() dans un bloc finally. Les ressources ne seront pas libérées correctement sinon.
Étape 4 : Accéder à une diapositive
La première diapositive se trouve à l’index 0. Une présentation vierge contient exactement une diapositive.
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0); // zero-based index
System.out.println("Slide at index 0: " + slide);
prs.save("output.pptx", SaveFormat.PPTX);
}Étape 5 : Ajouter une forme
Utilisez slide.getShapes().addAutoShape() pour ajouter une AutoShape. Les paramètres sont (shapeType, x, y, width, height) tous en points (1 point = 1/72 pouce ; la diapositive standard fait 720 x 540 pt).
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
// Rectangle at (50, 50) with 400 wide and 120 tall
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 400, 120
);
// Attach a text frame
shape.addTextFrame("Hello from Aspose.Slides FOSS!");
prs.save("with-shape.pptx", SaveFormat.PPTX);
}Étape 6 : Enregistrer la présentation
Appelez prs.save(path, SaveFormat.PPTX) avant que le bloc try ne se termine. PPTX est le seul format de sortie pris en charge.
prs.save("result.pptx", SaveFormat.PPTX);Le fichier est écrit de manière atomique ; si une erreur survient avant cet appel, aucun fichier de sortie n’est créé.
Exemple complet fonctionnel
Le programme suivant crée une présentation de deux diapositives avec une forme de titre sur la première diapositive et un tableau sur la seconde.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
public class CreatePresentation {
public static void main(String[] args) {
try (Presentation prs = new Presentation()) {
// --- Slide 1: title shape ---
ISlide slide1 = prs.getSlides().get(0);
IAutoShape title = slide1.getShapes().addAutoShape(
ShapeType.RECTANGLE, 40, 40, 640, 80
);
ITextFrame tf = title.addTextFrame("Q1 Results: Executive Summary");
IPortionFormat fmt = tf.getParagraphs().get(0)
.getPortions().get(0).getPortionFormat();
fmt.setFontHeight(32);
fmt.setFontBold(NullableBool.TRUE);
fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(
Color.fromArgb(255, 0, 70, 127)
);
// --- Slide 2: table ---
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);
ITable table = slide2.getShapes().addTable(
40, 40,
new double[]{200.0, 120.0, 120.0},
new double[]{40.0, 40.0, 40.0}
);
String[] headers = {"Region", "Revenue", "Growth"};
String[][] data = {
{"North", "$1.2M", "+8%"},
{"South", "$0.9M", "+4%"},
};
for (int col = 0; col < headers.length; col++) {
table.getRows().get(0).get(col).getTextFrame().setText(headers[col]);
}
for (int row = 0; row < data.length; row++) {
for (int col = 0; col < data[row].length; col++) {
table.getRows().get(row + 1).get(col)
.getTextFrame().setText(data[row][col]);
}
}
prs.save("q1-results.pptx", SaveFormat.PPTX);
}
System.out.println("Saved q1-results.pptx");
}
}Problèmes courants et solutions
IllegalStateException: Presentation already disposed
Vous appelez des méthodes sur un objet Presentation après la sortie du bloc try‑with‑resources. Gardez toujours tout le travail à l’intérieur du bloc try.
UnsupportedOperationException lors de l’enregistrement
Cela se produit lors de la tentative d’enregistrement dans un format autre que PPTX, ou lors de l’utilisation d’une fonctionnalité non prise en charge (comme les graphiques ou les animations).
Forme apparaît en dehors de la zone visible de la diapositive
Les diapositives sont de 720 × 540 points par défaut. Conservez x + width <= 720 et y + height <= 540.
Foire aux questions
Quelle est la taille de diapositive par défaut ?
Un nouveau Presentation() crée des diapositives au format standard de 10 × 7,5 pouces (720 × 540 points). La modification de la taille des diapositives n’est pas encore prise en charge dans cette édition.
Puis-je ajouter plus d’une diapositive?
Oui. Appelez prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) pour ajouter une diapositive vierge et y accéder par indice:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Puis-je ouvrir un fichier existant et ajouter des diapositives ?
Oui:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Quels formats puis-je enregistrer ?
Seul SaveFormat.PPTX est pris en charge. L’exportation vers PDF, HTML, SVG ou images n’est pas disponible dans cette édition.