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);
    }
}

相关文章

Java常用的包(package)有哪些?有什么作用?

常用的包有8个,分别是:1.Java.lang包这个包下包含了Java语言的核心类,如String、Math、Sytem和Thread类等,使用这个包无需使用import语句导入,系统会自动导入这个包...

Idea项目的创建和模块的导入Java中方法的三种调用方式和方法重载

一:如何创建工程和模块File-->New-->Project...Eempt Project-->Next输入Finish-->Ok-->New Window关闭刚创建...

Node.js开发者必须了解的4个JS要点

Node.js是一个面向服务器的框架,立足于Chrome强大的V8 JS引擎。尽管它由C++编写而成,但是它及其应用是运行在JS上的。本文为开发者总结了4个Node.js要点。1. 非阻塞(Non-b...

Java通过ClassLoader加载指定的Jar包,并读取Jar包内类上的注解

说明项目上有个需求,在系统启动时需要动态的加载Jar包,并且扫描jar包中类的注解。实现package org.yingqiang.system.annotation.scanner; import...

Android应用编程基础第22篇:Java中的import

上一篇我们讲了包(package)的概念以及使用。今天我们讲讲如何在一个类中访问其他在不同包中的类的成员,这里我们要学习一个新的关键字import。到目前为止,所介绍的类都是属于同一个包(packag...

javaagent介绍、使用、实现详解

javaagent介绍jdk提供了一种强大的可以对已有class代码进行运行时注入修改的能力。 javaagent可以在启动时通过-javaagent:agentJarPath或运行时attach加载...