• 通过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));
        }
    
    }
  • 相关阅读:
    java ---------- API
    java ------- 泛型
    mybatis(输入、输出参数、ResultMap)
    javase参数传递机制(值传递)
    mybatis配置文件(properties、typeAliases、mappers( resource、class、url、package))
    mybatis(Mybatis与hibernate的不同、原始Dao开发、Mapper动态代理开发)
    mybatis入门(介绍、mybatis入门程序(增、删、改、查))
    javase(四舍五入、switch、length、构造器、重载与重写)
    javase(内存中的堆(heap)、栈(stack)和静态存储区)
    Javase(&与&&的区别和联系)
  • 原文地址:https://www.cnblogs.com/cww0814/p/8378027.html
Copyright © 2020-2023  润新知