Introduction
Aspose.Slides FOSS for Java is now available on Maven Central: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx fichiers entièrement en Java, sans dépendance à Microsoft Office ni à aucun runtime propriétaire.
La bibliothèque est conçue pour les développeurs qui doivent générer ou manipuler des fichiers de présentation de manière programmatique : automatiser des diaporamas à partir de données, extraire le texte et les métadonnées des fichiers PPTX téléchargés, créer des pipelines de reporting basés sur des présentations, ou intégrer la création de présentations dans des applications Spring Boot. Parce que aspose-slides-foss est pur Java, il se déploie de manière identique sur Windows, macOS, Linux et les conteneurs Docker.
Fonctionnalités clés
- Prise en charge complète du round-trip PPTX: Ouvrez n’importe quel
.pptxfichier, modifiez son contenu et enregistrez-le à nouveau sans perdre les parties XML inconnues que la bibliothèque ne comprend pas encore. - Gestion des diapositives: Ajoutez, supprimez et parcourez les diapositives avec
prs.getSlides(); la présentation commence avec une diapositive vierge aprèsnew Presentation(). - AutoShapes, Tableaux et Connecteurs: Insérez des formes via
slide.getShapes().addAutoShape(), données tabulaires viaslide.getShapes().addTable(), et des connecteurs visuels entre les formes viaslide.getShapes().addConnector(). - Mise en forme de texte enrichi: Formatez le texte au niveau des caractères avec
PortionFormat: taille de police, gras, italique, souligné et couleur ARGB viaFillType.SOLIDetColorFormat. - Types de remplissage: Appliquer
FillType.SOLID,GRADIENT,PATTERN, ouPICTUREremplissages à n’importe quelle forme. - Effets visuels: Ombre externe, lueur, bord doux, flou, réflexion et ombre interne via
shape.getEffectFormat(). - 3D formatting: Biseau, caméra, dispositif d’éclairage, matériau et profondeur d’extrusion via
shape.getThreeDFormat(). - : Notes du présentateur: Attacher le texte des notes à chaque diapositive via
getNotesSlideManager().addNotesSlide(). - : Commentaires en fil: Ajouter des commentaires avec les métadonnées de l’auteur et la position de la diapositive.
- : Images intégrées: Intégrer depuis le chemin de fichier, les octets ou
InputStream. - : Propriétés du document: Lire et écrire les propriétés de base, d’application et personnalisées.
Premiers pas
Ajoutez la dépendance Maven. Java 21 ou supérieur est requis.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>
Créez votre première présentation avec une forme et enregistrez‑la :
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.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 HelloSlides {
public static void main(String[] args) {
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 400, 120
);
shape.addTextFrame("Hello from Aspose.Slides FOSS!");
prs.save("hello.pptx");
}
}
}
: Toujours utiliser Presentation dans un bloc try-with-resources; cela garantit que toutes les ressources internes sont libérées lorsque le bloc se termine.
Exemple de mise en forme du texte
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.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()) {
IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 500, 150
);
ITextFrame tf = shape.addTextFrame("Bold heading in corporate blue");
IPortionFormat fmt = tf.getParagraphs().get(0).getPortions().get(0).getPortionFormat();
fmt.setFontHeight(28);
fmt.setFontBold(NullableBool.TRUE);
fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(new Color(0, 70, 127));
prs.save("formatted.pptx");
}
Limitations actuelles
Les zones suivantes lancent UnsupportedOperationException dans cette version:
- Graphiques, SmartArt et objets OLE
- Animations et transitions de diapositives
- Exportation vers PDF, HTML, SVG ou formats d’image
- Hyperliens, paramètres d’action, macros VBA et signatures numériques
Les parties XML inconnues rencontrées lors du chargement sont conservées mot pour mot lors de l’enregistrement, de sorte que les fichiers PPTX produits par d’autres outils effectuent un aller-retour en toute sécurité.