ZIP文件格式是一种数据压缩和文档储存的文件格式,它属于几种主流的压缩格式之一。本文将介绍如何使用Java代码将ZIP文件嵌入到新建PowerPoint文档中的指定幻灯片

使用工具:Free Spire.Prensentation for Java免费控件

JAR包导入:E-iceblue中文官网获取产品包,解压后在lib文件夹下找到Spire.Presentation.jar,然后手动将其导入Java项目;创建Maven仓库,然后在pom.xml文件中键入以下代码,最后点击“Import Changes”即可导入。

com.e-iceblue https://repo.e-iceblue.cn/repository/maven-public/ e-iceblue spire.presentation.free 5.1.0

代码示例

Free Spire.Presentation for Java支持给新建PowerPoint文档中的指定幻灯片嵌入ZIP文件,详细步骤如下:

  • 创建一个新的PowerPoint文档并设置幻灯片大小的类型;
  • 使用Presentation.getSlides().get()方法获取特定幻灯片;
  • 加载一个ZIP文件并将其转换为byte[]对象;
  • 加载一个图片,使用Presentation.getImages().append()方法将其添加到幻灯片中作为ZIP文件的展示图片;
  • 使用Islide.getShapes.appendOleObject()方法将ZIP文件嵌入指定幻灯片;
  • 使用IOleObject.getSubstituteImagePictureFillFormat()方法获取OleObject图像填充属性对象,再使用PictureFillFormat.getPicture().setEmbedImage()方法设置嵌入图片;
  • 使用Presentation.saveToFile()方法保存结果文档。

import com.spire.presentation.*; import com.spire.presentation.drawing.IImageData; import javax.imageio.ImageIO; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; public class InsertZIP { public static void main(String[] args) throws Exception { //创建Presentation对象 Presentation presentation = new Presentation(); presentation.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9); //获取第一个幻灯片 ISlide slide = presentation.getSlides().get(0); //加载一个zip文件并转换为byte[]对象 String filePath = "C:\Users\Test1\Desktop\Sample.zip"; File zipFile = new File(filePath); FileInputStream inputStream = new FileInputStream(zipFile); byte[] data = new byte[(int) zipFile.length()]; inputStream.read(data, 0, data.length); //加载一个图片作为zip文件的展示图片 File file = new File("C:\Users\Test1\Desktop\Image.jpg"); BufferedImage image = ImageIO.read(file); IImageData oleImage = presentation.getImages().append(image); //将zip文件嵌入第一个幻灯片 Rectangle2D rect = new Rectangle2D.Float(60, 60, image.getWidth(), image.getHeight()); IOleObject oleObject = slide.getShapes().appendOleObject("zip", data, rect); oleObject.getSubstituteImagePictureFillFormat().getPicture().setEmbedImage(oleImage); oleObject.setProgId("Package"); //保存文档 presentation.saveToFile("output/InsertZip.pptx", FileFormat.PPTX_2013); } }