Apache POI PPT - Gambar
Dalam bab ini, Anda akan belajar cara menambahkan gambar ke PPT dan cara membaca gambar darinya.
Menambahkan Gambar
Anda dapat menambahkan gambar ke presentasi menggunakan createPicture() metode dari XSLFSlide. Metode ini menerima citra dalam bentuk format byte array. Oleh karena itu, Anda harus membuat larik byte dari gambar yang akan ditambahkan ke presentasi.
Ikuti prosedur yang diberikan untuk menambahkan gambar ke presentasi. Buat slideshow kosong menggunakanXMLSlideShow seperti yang ditunjukkan di bawah ini -
XMLSlideShow ppt = new XMLSlideShow();
Buat presentasi kosong di dalamnya menggunakan createSlide().
XSLFSlide slide = ppt.createSlide();
Baca file gambar yang akan ditambahkan dan konversikan menjadi byte array menggunakan IOUtils.toByteArray() dari IOUtils kelas seperti yang ditunjukkan di bawah ini -
//reading an image
File image = new File("C://POIPPT//boy.jpg");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
Tambahkan gambar ke presentasi menggunakan addPicture(). Metode ini menerima dua variabel: format larik byte dari gambar yang akan ditambahkan dan variabel statis yang mewakili format file gambar. Penggunaan fileaddPicture() metode ditunjukkan di bawah ini -
int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
Sematkan gambar ke slide menggunakan createPicture() seperti yang ditunjukkan di bawah ini -
XSLFPictureShape pic = slide.createPicture(idx);
Diberikan di bawah ini adalah program lengkap untuk menambahkan gambar ke slide dalam presentasi -
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
public class AddingImage {
public static void main(String args[]) throws IOException {
//creating a presentation
XMLSlideShow ppt = new XMLSlideShow();
//creating a slide in it
XSLFSlide slide = ppt.createSlide();
//reading an image
File image = new File("C://POIPPT//boy.jpg");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
//adding the image to the presentation
int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
//creating a slide with given picture on it
XSLFPictureShape pic = slide.createPicture(idx);
//creating a file object
File file = new File("addingimage.pptx");
FileOutputStream out = new FileOutputStream(file);
//saving the changes to a file
ppt.write(out)
System.out.println("image added successfully");
out.close();
}
}
Simpan kode Java di atas sebagai AddingImage.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -
$javac AddingImage.java
$java AddingImage
Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -
reordering of the slides is done
Presentasi dengan slide yang baru ditambahkan dengan gambar muncul sebagai berikut -
Membaca Gambar
Anda bisa mendapatkan data dari semua gambar menggunakan getAllPictures() metode dari XMLSlideShowkelas. Program berikut membaca gambar dari presentasi -
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
public class Readingimage {
public static void main(String args[]) throws IOException {
//open an existing presentation
File file = new File("addingimage.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
//reading all the pictures in the presentation
for(XSLFPictureData data : ppt.getAllPictures()){
byte[] bytes = data.getData();
String fileName = data.getFileName();
int pictureFormat = data.getPictureType();
System.out.println("picture name: " + fileName);
System.out.println("picture format: " + pictureFormat);
}
//saving the changes to a file
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);
out.close();
}
}
Simpan kode Java di atas sebagai Readingimage.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -
$javac Readingimage.java
$java Readingimage
Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -
picture name: image1.png
picture format: 6