zoukankan      html  css  js  c++  java
  • 通过poi操作ppt中的图片

    //完整添加图片
    public class MyFirstPPTTest {
    
    
        public static void main(String[] args) throws Exception{
            /** 文件路径 **/
            String filePath = "D://MyPPT.pptx";
            String imagePath = "D://a.png";
            String imagePath2 = "D://b.png";
            String imagePath3 = "D://c.png";
            /** 加载PPT **/
            XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(filePath));
    
            /** 创建一个slide,理解为PPT里的每一页 **/
            XSLFSlide slide = ppt.createSlide();
            XSLFSlide slide2 = ppt.createSlide();
            XSLFSlide slide3 = ppt.createSlide();
            /** 生成二进制数组 **/
            byte[] pictureData = IOUtils.toByteArray(new FileInputStream(imagePath));
            byte[] pictureData2 = IOUtils.toByteArray(new FileInputStream(imagePath2));
            byte[] pictureData3 = IOUtils.toByteArray(new FileInputStream(imagePath3));
            /** 添加图片,返回索引 **/
            int pictureIndex =  ppt.addPicture(pictureData, XSLFPictureData.PICTURE_TYPE_PNG);
            int pictureIndex2 =  ppt.addPicture(pictureData2, XSLFPictureData.PICTURE_TYPE_PNG);
            int pictureIndex3 =  ppt.addPicture(pictureData3, XSLFPictureData.PICTURE_TYPE_PNG);
            /** 打印信息 **/
            System.out.println("pictureIndex " + pictureIndex);// pictureIndex   0
            System.out.println("pictureIndex2 " + pictureIndex2);//  pictureIndex2  1
            System.out.println("pictureIndex3 " + pictureIndex3);//  pictureIndex3  2
            /** 创建图片 **/
            XSLFPictureShape pictureShape = slide.createPicture(pictureIndex);
            XSLFPictureShape pictureShape2 = slide2.createPicture(pictureIndex2);
            XSLFPictureShape pictureShape3 = slide3.createPicture(pictureIndex3);
    
            /** 设置图片的位置 四个参数分别为 x y width height  **/
            pictureShape.setAnchor(new java.awt.Rectangle(50, 50, 500, 300));
            pictureShape2.setAnchor(new java.awt.Rectangle(50, 150, 500, 300));
            pictureShape3.setAnchor(new java.awt.Rectangle(50, 250, 500, 300));
    
            /** 获取图片类别 **/
            int pictureType = pictureShape.getPictureData().getPictureType();
    
            switch (pictureType){
                case Picture.JPEG:
                    System.out.println("the type of picture is : " + "JPEG");
                    break;
                case Picture.PNG:
                    System.out.println("the type of picture is :" + "PNG");
                    break;
            }
    
            System.out.println(pictureType);
    
            /** 输出文件 **/
            ppt.write(new FileOutputStream(filePath));
        }
    
    }
  • 相关阅读:
    Hive系统函数之collect_list和collect_set
    SpringBoot集成JWT实现token验证
    Hadoop添加LZO压缩支持
    常见函数封装(自用,随时更新)
    vs-code 的常用插件
    在移动端显示控制台信息
    SublimeText 3 常见快捷键
    vue的自定义指令
    修改滚动条样式
    vue、react中循环遍历为什么会有key,key有什么作用?
  • 原文地址:https://www.cnblogs.com/cww0814/p/8378027.html
Copyright © 2011-2022 走看看