W naszym wcześniejszym poście na blogu omawialiśmy interfejs API Apache POI XSLF do tworzenia i aktualizowania pliku PPTX programu Microsoft PowerPoint w języku Java. Apache POI for Java umożliwia pracę z plikami PPT i PPTX z poziomu aplikacji Java bez konieczności wchodzenia w szczegóły ich wewnętrznego formatu plików. W tym artykule omówimy szczegółowo, w jaki sposób można wykorzystać interfejs API Apache POI do wstawienia obrazu do PPTX za pomocą języka Java. Przyjrzymy się również sposobowi odczytania informacji o obrazie z pliku PPTX przy użyciu języka Java.
wymagania systemowe
Zanim zaczniesz, upewnij się, że Twój system spełnia następujące wymagania.
- JDK – Java SE 2 JDK 1.5 lub nowsza wersja
- Pamięć – 1 GB Ramu
- System operacyjny – Windows/Linux/Mac OS
Instalowanie Apache POI dla Java
Będziesz potrzebować środowiska programistycznego Java, takiego jak Eclipse, IntelliJ IDEA lub inne IDE, z którym czujesz się komfortowo, aby pracować z biblioteką Apache POI w swojej aplikacji. Następnym krokiem jest dodanie zależności Apache POI Maven do pliku pom.xml aplikacji, jak pokazano poniżej.
<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>
Biblioteka Java do dodawania obrazu do pliku PPTX
Na tym etapie zakładamy, że Twoje środowisko programistyczne jest gotowe i możemy zacząć od napisania kodu umożliwiającego dodanie obrazów do pliku prezentacji PowerPoint. Osiąga się to za pomocą metody createPicture() klasy XSLFSlide. Wstawianie obrazu do slajdu w programie PowerPoint obejmuje następujące kroki.
- Utwórz instancję klasy XMLSlideShow
- Dodaj slajd do prezentacji, wywołując metodę createSlide na instancji prezentacji z kroku 1
- Załaduj obraz z pliku jako tablicę bajtów i dodaj go do instancji XSLFPictureData
- Wywołaj metodę createPicture w instancji slajdu
- Zapisz prezentację na wyjściu
Poniższy przykładowy kod demonstruje te kroki.
//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();
Przeczytaj informacje o obrazie z pliku PPTX
Dzięki Apache POI API for Java możesz odczytać dane wszystkich obrazów z pliku PPTX przy użyciu metody getPictureData() klasy XMLSlideShow. Poniższy przykładowy kod demonstruje tę funkcjonalność, odczytując obrazy z prezentacji.
//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();
Wniosek
Komponenty Apache POI do pracy z plikami prezentacji programu PowerPoint umożliwiają wstawianie obrazów do plików PowerPoint PPT i PPTX z poziomu aplikacji Java. Umożliwia także odczytywanie informacji o obrazach z obrazów na slajdach. W naszych nadchodzących blogach będziemy dalej zademonstrować wykorzystanie komponentów Java Apache POI do pracy z prezentacjami programu PowerPoint. Bądźcie na bieżąco.