添加图片
您可以使用 XSLFSlide 的 createPicture() 方法将图像添加到演示文稿。 该方法接受字节数组格式的图像。 因此,您必须创建要添加到演示文稿中的图像的字节数组。
按照给定的过程将图像添加到演示文稿中。 使用 XMLSlideShow 创建一个空的幻灯片,如下所示 -
XMLSlideShow ppt = new XMLSlideShow();
使用 createSlide() 在其中创建一个空演示文稿。
XSLFSlide slide = ppt.createSlide();
读取要添加的图像文件,并使用 IOUtils 类的 IOUtils.toByteArray() 将其转换为字节数组: 如下所示 -
//reading an image
File image = new File("C://POIPPT//boy.jpg");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
使用 addPicture() 将图像添加到演示文稿。 该方法接受两个变量:要添加的图像的字节数组格式和表示图像文件格式的静态变量。 addPicture() 方法的用法如下所示 -
XSLFPictureData idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
使用 createPicture() 将图像嵌入到幻灯片中,如下所示 -
XSLFPictureShape pic = slide.createPicture(idx);
下面给出了在演示文稿中向幻灯片添加图像的完整程序 -
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.sl.usermodel.PictureData.PictureType;
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
XSLFPictureData idx = ppt.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("addingimage.pptx");
FileOutputStream out = new FileOutputStream(file);
//saving the changes to a file
ppt.write(out);
System.out.println("image added successfully");
out.close();
}
}
将上述 Java 代码保存为 AddingImage.java,然后在命令提示符下编译并执行,如下所示 -
$javac AddingImage.java
$java AddingImage
它将编译并执行以生成以下输出 -
reordering of the slides is done
带有图像的新添加幻灯片的演示文稿如下所示 -