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

}

 

转载于:https://www.cnblogs.com/cww0814/p/8378027.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值