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));
        }
    
    }
  • 相关阅读:
    Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)
    Python For Data Analysis -- Pandas
    Python For Data Analysis -- NumPy
    Python For Data Analysis -- IPython
    Andrew Ng机器学习公开课笔记 – Factor Analysis
    Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm
    Andrew Ng机器学习公开课笔记 -- Online Learning
    Machine Learning in Action -- Support Vector Machines
    HDU-1090-A+B for Input-Output Practice (II)(骗訪问量的)
    五种内部类形式将线程隐藏于类中
  • 原文地址:https://www.cnblogs.com/cww0814/p/8378027.html
Copyright © 2011-2022 走看看