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();
}
}

延伸阅读推荐:
(本文完)
Java 如何在PPT中设置形状组合、取消组合、编辑组合形状的更多相关文章
- 如何在 apache 中设置缓存有效时间
今天学习了下如何在 apache 中设置缓存时间,记之以备忘. 在 http 报文头中,与缓存时间有关的两个字段是 Expires 以及 Cache-Control 中的 max-age,Expire ...
- 如何在Eclipse中设置默认的JSP文件头部编码
如何在Eclipse中设置默认的JSP文件头部编码 一般,我们为了以后在导入和导出程序的时候(特别是项目较大,文件多)一般都默认文件编码格式为UTF-8 如果你通常都是通过Eclipse来编写程序,那 ...
- 如何在IIS中设置HTTPS服务
文章:https://support.microsoft.com/en-us/help/324069/how-to-set-up-an-https-service-in-iis 在这个任务中 摘要 为 ...
- SPSS输出结果如何在word中设置小数点前面显示加0
SPSS输出结果如何在word中设置小数点前面显示加0 在用统计分析软件做SPSS分析时,其输出的结果中,如果是小于1(绝对值)的数,那么会默认输出不带小数点的数值.例如0.362和 -0.141被显 ...
- 如何在XAMPP中设置多个网站
xampp 是一个非常方便的本地 apache + php + mysql 的调试环境,在本地安装测试 WordPress 等各种博客.论坛程序非常方便.今天我们来给大家介绍一下,如何使用 XAMPP ...
- 【Java】在JTable中设置鼠标监听器,点击操作对应数据
最终效果 鼠标点击JTable中任一数据,修改相应的信息. 确定点击的行和列 package com.dao; import java.awt.event.MouseAdapter; import j ...
- 如何在BIOS中设置RAID?
随着价格的下降和相应主板的支持,目前SATA硬盘已经逐渐成为主流.但由于受芯片组和操作系统的影响,不少用户对SATA硬盘的使用及安装系统掌握不足,今天小编就给大家介绍一下SATA硬盘的日常应用技巧,希 ...
- 如何在SpriteBuilder中设置对象的通用属性
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在SpriteBuilder中可以为对象设置自定义类从 ...
- 如何在 Windows 中设置 /3GB 启动开关
备注: 只有在下列操作系统中才支持 /3GB 开关: Windows 2000 Advanced Server Windows 2000 Datacenter Server Windows Serve ...
- 如何在IDM中设置代理服务器?
很多时候,大家下载文件都是在国外的一些网站上进行下载,这样不可免会受到自身国内网络的限制,另一方面下载源为避免服务器带宽占用过多而限制下载速率,这就会导致文件下载极慢,甚至几KB每秒. 这种情况是不是 ...
随机推荐
- 彻底搞懂Docker容器与Kraft模式kafka集群关于消息大小相关参数设置
Docker部署的设置 部署背景: 在DockerHub拉取的bitnami/kafka:3.4.1 镜像,如果要部署在Docker-Swarm集群或者单Docker部署,对于消息大小设置需要添加参数 ...
- Vue源码学习(十二):列队处理(防抖优化,多次调用,只处理一次)
好家伙, 本篇讲的是数据更新请求列队处理 1.一些性能问题 数据更新的核心方法是watcher.updata方法 实际上也就是vm._updata()方法, vm._updata()方法中的patch ...
- ubuntu 20.1 (linux) 下软件安装教程(基本上都是使用命令行安装)
一.node 1. 安装教程 # 第二步,添加源后安装 需要什么版本直接替换后面的数字即可,如果需要21,直接将20替换为21就可以了 curl -sL https://deb.nodesource. ...
- C#经典十大排序算法(完结)
C#冒泡排序算法 简介 冒泡排序算法是一种基础的排序算法,它的实现原理比较简单.核心思想是通过相邻元素的比较和交换来将最大(或最小)的元素逐步"冒泡"到数列的末尾. 详细文章描述 ...
- ExcelPatternTool 开箱即用的Excel工具包现已发布!
目录 ExcelPatternTool 功能 特点: 快速开始 使用说明 常规类型 高级类型 Importable注解 Exportable注解 IImportOption导入选项 IExportOp ...
- Godot - 创建翻译文件(常量表)
版本 Godot 3.1.2 背景 Godot的UI系统封装的很难受, 一些东西很难改动, 比如这个AcceptDialog的"确定""取消"按钮, 特别是在编 ...
- 搓一个Pythonic list
总所周知,Python语言当中的list是可以存储不同类型的元素的,对应到现代C++当中,可以用std::variant或者std::any实现类似的功能.而Python官方的实现当中用到了二级指 ...
- k8s-服务网格实战-配置 Mesh(灰度发布)
在上一篇 k8s-服务网格实战-入门Istio中分享了如何安装部署 Istio,同时可以利用 Istio 实现 gRPC 的负载均衡. 今天我们更进一步,深入了解使用 Istio 的功能. 从 Ist ...
- Ubuntu 20.04 挂载 NTFS 硬盘 / 格式化并挂载 EXT4 硬盘
创建挂载目录 mkdir /mnt/hdd 此目录在最后一步中用得到. 确定要挂载的硬盘 fdisk -l 由于我们要挂载的是 NTFS 硬盘,根据上面的信息,可以确定 /dev/sda1 是我们要挂 ...
- TPshop商城的安装流程(windows)----超详细版
提前准备 phpStudy下载:https://www.xp.cn/download.html 选择适合自己的版本下载 TPshop商城源文件下载链接:https://pan.baidu.com/s/ ...