📜  Apache POI PPT-图片(1)

📅  最后修改于: 2023-12-03 14:59:20.797000             🧑  作者: Mango

Apache POI PPT-图片

Apache POI是一个用Java编写的开放源代码库,它使得用户可以创建、修改和显示Microsoft Office文件,如Word、Excel和PowerPoint。其中,Apache POI PPT允许用户操作PPT文件,添加、修改、删除幻灯片、文本、标签、表格、图形、链接等元素。本文将重点介绍Apache POI PPT如何添加、修改和删除图片。

添加图片

Apache POI PPT支持通过URL或InputStream添加图片。以下是添加本地图片的示例代码:

//创建PPT文档
XMLSlideShow ppt = new XMLSlideShow();
//创建幻灯片
XSLFSlide slide = ppt.createSlide();
//获取图片文件
File imageFile = new File("image.jpg");
//将图片读入InputStream
FileInputStream fis = new FileInputStream(imageFile);
byte[] bytes = IOUtils.toByteArray(fis);
//添加图片
int pictureIndex = ppt.addPicture(bytes, XSLFPictureData.PictureType.JPEG);
XSLFPictureShape picture = slide.createPicture(pictureIndex);
//设置图片位置与大小
picture.setAnchor(new Rectangle(50, 50, 200, 200));

代码解析:

  1. 创建PPT文档,创建幻灯片
  2. 获取图片文件,将图片读入InputStream与ByteArrayOutputStream一起使用
  3. 添加图片,并返回图片在文件中的索引
  4. 创建图片Shape
  5. 设置Shape的位置与大小,并将Shape添加到幻灯片上。

其它类型的图片添加类似,只是在XSLFPictureData.PictureType中的参数改变即可。

修改图片

修改图片需要先获取目标Shape的索引,再使用XSLFPictureShape类中的api进行修改。

//获取图片Shape
XSLFPictureShape picture = (XSLFPictureShape)slide.getShapes().get(0);
//设置图片位置和大小
picture.setAnchor(new Rectangle(100,100,200,200));
//替换图片内容
File imageFile = new File("image.jpg");
FileInputStream fis = new FileInputStream(imageFile);
byte[] bytes = IOUtils.toByteArray(fis);
picture.getPictureData().setData(bytes);

代码解析:

  1. 获取Shape
  2. 设置Shape的位置和大小。
  3. 获取图片的Byte数组
  4. 替换Shape的图片。
删除图片

删除图片时,通过获取图片Shape索引进行删除。

//获取图片Shape
XSLFPictureShape picture = (XSLFPictureShape)slide.getShapes().get(0);
//删除图片
slide.removeShape(picture);

代码解析:

  1. 获取Shape
  2. 删除Shape。

上述示例中,我们向大家介绍了如何通过Apache POI PPT添加、修改和删除图片。Apache POI PPT的使用还有很多你可能需要了解的地方,比如遍历、设置Table、Slide的注释等,有兴趣的同学可以看看官方文档和MOOC。