• Java 如何在PPT中设置形状组合、取消组合、编辑组合形状


    Java 如何在PPT中设置形状组合、取消组合、编辑组合形状

     

    PPT中支持插入多达9种不同类型的形状,每种类型下又包含数十种形状样式。针对如此多种类型的形状,为页面元素设计需要、方便形状操作管理的目的,可通过形状“组合”的方式来固定多个形状的位置、布局;对已有的组合形状,也可通过“取消组合”来重新定义形状组合样式,或者编辑已有的组合形状,可操作组合形状或者组合形状下的子形状,如设置形状名称、旋转、高、宽、对齐方式,同时,可设置形状排列方式(置于顶/底层、上/下移一层)等等。下面通过Java后端程序代码演示如何来实现以上操作,文章分3个示例demo来展示。

    1. 程序所需API

    可下载专门用于PowerPoint文档操作的API,Free Spire.Presentation for Java。获取Jar包后,将lib文件夹下的jar文件导入Java程序。(注:本文程序JDK版本为1.8.0)

    2. Java代码

      2.1 组合形状

    复制代码
    import com.spire.presentation.*;
    import com.spire.presentation.drawing.FillFormatType;
    
    import java.awt.geom.Rectangle2D;
    import java.util.ArrayList;
    
    public class GroupShapes {
        public static void main(String[] args) throws Exception{
            //创建PPT文档
            Presentation ppt = new Presentation();
            //获取第一张幻灯片
            ISlide slide = ppt.getSlides().get(0);
    
            //添加一个缎带形状
            IShape ribbon = slide.getShapes().appendShape(ShapeType.RIBBON, new Rectangle2D.Double(250,100,250,40));
            ribbon.getFill().setFillType(FillFormatType.SOLID);
            ribbon.getFill().getSolidColor().setKnownColor(KnownColors.GOLD);
            ribbon.getLine().setWidth(0.1f);
    
            //添加一个心形
            IShape heart = slide.getShapes().appendShape(ShapeType.HEART, new Rectangle2D.Double(335, 80, 80, 80));
            heart.getFill().setFillType(FillFormatType.SOLID);
            heart.getFill().getSolidColor().setKnownColor(KnownColors.RED);
            heart.getLine().setWidth(0.1f);
    
            //将两个形状添加到ArrayList数组
            ArrayList list = new ArrayList();
            list.add(ribbon);
            list.add(heart);
    
            //组合数组中的形状
            ppt.getSlides().get(0).groupShapes(list);
    
            //保存文档
            ppt.saveToFile("GroupShapes.pptx", FileFormat.PPTX_2013);
            ppt.dispose();
        }
    }
    复制代码

      2.2 取消形状组合

    复制代码
    import com.spire.presentation.*;
    
    public class UngroupShape {
        public static void main(String[] args) throws Exception{
            //加载测试文档
            Presentation ppt = new Presentation();
            ppt.loadFromFile("GroupShapes.pptx");
    
            //获取指定幻灯片中的形状
            ISlide slide = ppt.getSlides().get(0);
            IShape shape = slide.getShapes().get(0);
    
            //判断是否为组合形状
            if(shape instanceof GroupShape)
            {
                //取消形状组合
                slide.ungroup((GroupShape)shape);
            }
    
            //保存文档
            ppt.saveToFile("UngroupShape.pptx",FileFormat.PPTX_2013);
            ppt.dispose();
        }
    }
    复制代码

    2.3 编辑组合形状,并设置形状排列方式(置于顶/底层,上/下移一层)

    以上文示例1中生成的组合形状为测试对象,重命名组合形状并设置形状排列方式为置于顶层。

    复制代码
    import com.spire.presentation.*;
    
    public class ModifyGroupShape {
        public static void main(String[] args) throws Exception {
            //加载测试文档
            Presentation ppt = new Presentation();
            ppt.loadFromFile("GroupShapes.pptx");
    
            //获取指定幻灯片中的形状
            ISlide slide = ppt.getSlides().get(0);
            IShape shape = slide.getShapes().get(0);
    
            //判断是否为组合形状
            if(shape instanceof GroupShape)
            {
                shape.setName("组合形状1");//命名组合形状
                IShape objectshape1 = ((GroupShape) shape).getShapes().get(0);
                objectshape1.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.BringToFront);//设置子形状1置于顶层
                IShape objectshape2 = ((GroupShape) shape).getShapes().get(1);
                objectshape2.setName("绸带");//重命名移动后的子形状
            }
    
            //保存文档
            ppt.saveToFile("ModifyGroupShape.pptx",FileFormat.PPTX_2013);
            ppt.dispose();
        }
    }
    复制代码

    延伸阅读推荐:

  • 相关阅读:
    Python面向对象5:类的常用魔术方法
    吴恩达机器学习笔记27-样本和直观理解2(Examples and Intuitions II)
    python之面向对象
    python之正则表达式
    python之模块
    python之函数
    python之基础
    python之入门
    Git+码云安装
    python,pycharm环境安装
  • 原文地址:https://www.cnblogs.com/xinxihua/p/14353202.html
Copyright © 2020-2023  润新知