Apache POI HSLF
Bibliothèque Java pour les formats de fichiers de présentation Microsoft® PPT
Ajoutez des diapositives et des images aux présentations, convertissez des fichiers PPT avec une API Java gratuite open source.
Qu'est-ce qu'Apache POI HSLF ?
Apache POI HSLF est une implémentation Java pure pour la lecture, la création, la modification ou le rendu de présentations PowerPoint. Il fournit un moyen de lire, créer ou modifier des présentations PowerPoint au format de fichier PPT. Il prend en charge l'extraction de données telles que du texte, des images, des sons, des objets intégrés et bien plus encore à partir de présentations PowerPoint.
Il prend également en charge le dessin d'une forme sur une diapositive, l'ajout d'hyperliens, de tableaux, d'images, la personnalisation des en-têtes et des pieds de page, la création de listes à puces, la récupération de sons intégrés, etc.
Premiers pas avec Apache POI HSLF
Tout d'abord, vous devez avoir le kit de développement Java (JDK) installé sur votre système. Si vous l'avez déjà, rendez-vous sur la page de téléchargement d'Apache POI pour obtenir la dernière version stable dans une archive. Extrayez le contenu du fichier ZIP dans n'importe quel répertoire à partir duquel les bibliothèques requises peuvent être liées à votre programme Java. C'est tout!
Référencer Apache POI dans votre projet Java basé sur Maven est encore plus simple. Tout ce dont vous avez besoin est d'ajouter la dépendance suivante dans votre pom.xml et de laisser votre IDE récupérer et référencer les fichiers Apache POI Jar.
Dépendance Apache POI Maven
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.0</version>
</dependency>
Créer dynamiquement un nouveau PPT ou modifier des présentations existantes
Apache POI HSLF permet aux programmeurs de créer de nouvelles présentations PowerPoint dans des formats de fichiers PPT. Les développeurs peuvent également transformer une présentation existante selon leurs besoins. L'API prend également en charge des fonctionnalités d'extraction de données telles que du texte, des images, des sons, des objets intégrés, etc. à partir de présentations PowerPoint.
Créer un fichier PPT - Java
// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("Slide.ppt"));
// create a new slide show
HSLFSlideShow xmlSlideShow = new HSLFSlideShow();
// save file
xmlSlideShow.write(fileOutputStream);
Ajouter des diapositives, des images et personnaliser l'en-tête et le pied de page au PPT
Les développeurs peuvent facilement ajouter de nouvelles diapositives et modifier celles existantes en fonction de leurs propres besoins dans une présentation PPT à l'aide de l'API Apache HSLF. Les développeurs peuvent désormais ajouter des en-têtes et des pieds de page personnalisés dans leurs présentations. Il fournit également une prise en charge complète pour ajouter un titre à une diapositive, créer une diapositive avec une mise en page prédéfinie, travailler avec un arrière-plan de diapositive/forme, et bien plus encore.
Insérer des images dans PPT via Java
- Créez un nouveau fichier PPT en utilisant FileOutputStream et transmettez l'instance de new File() avec le nom de fichier de sortie sous forme de chaîne
- Ajouter un nouveau diaporama à l'aide de la méthode HSLFSlideShow()
- Ajouter une nouvelle diapositive à l'aide de la méthode createSlide()
- Obtenez des octets d'image à l'aide de la méthode IOUtils.toByteArray() et transmettez-y votre image via la méthode FileInputStream()
- Ajoutez une image à votre diapositive à l'aide de la méthode hslfSlideShow.addPicture(picture, HSLPictureData.PictureType.PNG). La méthode accepte les octets d'image et le type d'image comme arguments
- Écrire et enregistrer le fichier
Ajouter une image dans PPT - Java
// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("AddImage.ppt"));
// create a new slide show
HSLFSlideShow hslfSlideShow = new HSLFSlideShow();
// create slide
HSLFSlide slide = hslfSlideShow.createSlide();
// load image
byte[] picture = IOUtils.toByteArray(new FileInputStream(new File("apache-poi-logo-min.png")));
// add image
HSLFPictureData hslfPictureData = hslfSlideShow.addPicture(picture, HSLFPictureData.PictureType.PNG);
HSLFPictureShape pictureShape = slide.createPicture(hslfPictureData);
// save file
hslfSlideShow.write(fileOutputStream);
// close stream
fileOutputStream.close();
Convertir des diapositives en formats d'image à l'aide de l'API Java
L'API Apache POI HSLF permet aux développeurs de logiciels de convertir chaque diapositive d'une présentation PowerPoint en un format de fichier image dans leurs applications Java. Vous pouvez capturer des diapositives dans un objet java.awt.Graphics2D (ou tout autre) et le sérialiser au format PNG ou JPEG. Les images prises en charge peuvent être au format JPEG, PNG, DIB, etc.
Convertir PPT en image - Java
//open an existing PPT file
HSLFSlideShow hslfSlideShow = new HSLFSlideShow(new FileInputStream(new File("PPTtoImage.ppt")));
// get dimensions
Dimension pgsize = hslfSlideShow.getPageSize();
java.util.List slide = hslfSlideShow.getSlides();
for (int i = 0; i < slide.size(); i++) {
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
// clear the drawing area
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
// render
slide.get(i).draw(graphics);
// create image
FileOutputStream out = new FileOutputStream("PPTtoImage.png");
javax.imageio.ImageIO.write(img, "png", out);
out.close();
}