zoukankan      html  css  js  c++  java
  • 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();
        }
    }

    延伸阅读推荐:

    (本文完)

  • 相关阅读:
    ubuntu qtcreator 硬件权限问题
    关于LuCi
    npm 使用记录
    ubuntu 下简单录音
    qthread 使用 signal 方法通信
    线程安全笔记一则
    ubuntu 设置 NAT 转发
    debian 中新建或调整 swap 空间
    关于 htonl 和 ntohl 的实现
    shell 调试手段总结
  • 原文地址:https://www.cnblogs.com/Yesi/p/14306492.html
Copyright © 2011-2022 走看看