In unserem früheren Blogbeitrag haben wir die Apache POI XSLF-API zum Erstellen und Aktualisieren einer Microsoft PowerPoint PPTX-Datei mit Java untersucht. Mit Apache POI für Java können Sie in Ihren Java-Anwendungen mit PPT- und PPTX-Dateien arbeiten, ohne sich mit den internen Dateiformatdetails dieser Anwendungen auseinanderzusetzen. In diesem Artikel gehen wir detailliert darauf ein, wie die Apache POI-API zum Einfügen eines Bildes in ein PPTX mit Java verwendet werden kann. Außerdem schauen wir uns an, wie man mit Java Bildinformationen aus einer PPTX-Datei liest.
System Anforderungen
Bevor Sie beginnen, stellen Sie sicher, dass Ihr System die folgenden Anforderungen erfüllt.
- JDK – Java SE 2 JDK 1.5 oder höher
- Speicher – 1 GB RAM
- Betriebssystem – Windows/Linux/Mac OS
Apache POI für Java installieren
Sie benötigen eine Java-Entwicklungsumgebung wie Eclipse, IntelliJ IDEA oder eine andere IDE, mit der Sie vertraut sind, um mit der Apache POI-Bibliothek in Ihrer Anwendung arbeiten zu können. Als Nächstes fügen Sie die Apache POI Maven-Abhängigkeit in die pom.xml-Datei Ihrer Anwendung ein, wie unten gezeigt.
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
Java-Bibliothek zum Hinzufügen von Bildern zu einer PPTX-Datei
Zu diesem Zeitpunkt gehen wir davon aus, dass Ihre Entwicklungsumgebung bereit ist und wir können mit dem Schreiben des Codes zum Hinzufügen von Bildern zu einer PowerPoint-Präsentationsdatei beginnen. Dies wird durch die Verwendung der Methode createPicture() der Klasse XSLFSlide erreicht. Das Einfügen eines Bildes in eine Folie in PowerPoint umfasst die folgenden Schritte.
- Erstellen Sie eine Instanz der XMLSlideShow-Klasse
- Fügen Sie der Präsentation eine Folie hinzu, indem Sie die Methode createSlide für die Präsentationsinstanz aus Schritt 1 aufrufen
- Laden Sie das Bild aus der Datei als Byte-Array und fügen Sie es der XSLFPictureData-Instanz hinzu
- Rufen Sie die Methode createPicture für die Instanz der Folie auf
- Speichern Sie die Präsentation in der Ausgabe
Das folgende Codebeispiel demonstriert diese Schritte.
//creating a presentation
XMLSlideShow pptx = new XMLSlideShow();
//creating a slide in it
XSLFSlide slide = pptx.createSlide();
//reading an image
File image = new File("fileformat.png");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
//adding the image to the presentation
XSLFPictureData idx = pptx.addPicture(picture, PictureType.PNG);
//creating a slide with given picture on it
XSLFPictureShape pic = slide.createPicture(idx);
//creating a file object
File file = new File("imagetopresentation.pptx");
FileOutputStream out = new FileOutputStream(file);
//saving the changes to a file
pptx.write(out);
out.close();
Bildinformationen aus einer PPTX-Datei lesen
Mit der Apache POI API für Java können Sie die Daten aller Bilder aus einer PPTX-Datei lesen, indem Sie die Methode getPictureData() der Klasse XMLSlideShow verwenden. Der folgende Beispielcode demonstriert diese Funktionalität durch das Lesen von Bildern aus einer Präsentation.
//open an existing presentation
File file = new File("imagetopresentation.pptx");
XMLSlideShow pptx = new XMLSlideShow(new FileInputStream(file));
//reading all the images from the presentation
for(XSLFPictureData data : pptx.getPictureData()){
byte[] bytes = data.getData();
String fileName = data.getFileName();
PictureType pictureFormat = data.getType();
System.out.println("picture name: " + fileName);
System.out.println("picture format: " + pictureFormat);
}
//saving the changes to a file
FileOutputStream out = new FileOutputStream(file);
pptx.write(out);
out.close();
Abschluss
Mit Apache POI-Komponenten für die Arbeit mit PowerPoint-Präsentationsdateien können Sie Bilder in PowerPoint-PPT- und PPTX-Dateien aus Ihrer Java-Anwendung einfügen. Außerdem können Sie Bildinformationen aus Bildern auf Folien lesen. In unseren kommenden Blogs werden wir die Verwendung von Apache POI Java-Komponenten für die Arbeit mit PowerPoint-Präsentationen weiter demonstrieren. Also bleibt gespannt.