Java 在PowerPoint文档中嵌入ZIP文件
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);
}
}