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每秒. 这种情况是不是 ...
随机推荐
- ELK+ filebeat
ELK 企业级日志分析系统 ELK 概述 1.ELK 简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch.Logstash 和 Kiabana 三个开源工具配合使用, 完 ...
- ansible平台
1.ansible概念: 1)ansible和saltstck是目前互联网IT运维人员使用最多的自动化运维管理工具,主要用于对批量(并行)Linux服务器:安装.部署.配置.指令操作.任务计划.参数调 ...
- 大一下c语言课程设计
// // main.c // 高级语言课程设计图书管理系统 // // Created by 蔡星旖 on 2022/8/1. // #include <iostream> #inclu ...
- Radius+OpenLdap+USG防火墙认证
1.1.安装OpenLdap # 在数据目录创建ldap文件存放ldap的配置文件 mkdir -p /data/ldap/{data,conf} docker run -p 389:389 -p 6 ...
- 一篇文章玩透awk
安装新版本gawk awk有很多种版本,例如nawk.gawk.gawk是GNU awk,它的功能很丰富. 本教程采用的是gawk 4.2.0版本,4.2.0版本的gawk是一个比较大的改版,新支持的 ...
- Dapper.Lite 扩展
最近重构并精简了Dapper.Lite,然后把不依赖Dapper的版本LiteSql也重构了一下,和Dapper.Lite保持一致.感觉这两款ORM基本完工,自荐一下. .NET的ORM虽多,堪用的不 ...
- Ubuntu 编辑文件、安装、删除软件等常用命令(持续更新)
一.编辑文件 1. sudo vi 文件名,进入文件页面,如图: 2. 按 i 键或者 o 键,进入编辑,左下角出现---------INSERT---------信息 3. 输入完毕后,按ESC退出 ...
- 【日常收支账本】【Day05】编辑账本界面增加删除、更新记录功能——提高代码复用性
一.项目地址 https://github.com/LinFeng-BingYi/DailyAccountBook 二.新增 1. 增加删除记录功能 1.1 功能详述 点击删除按钮后,获取对应行的数据 ...
- Kubernetes: kube-apiserver 之认证
kubernetes:kube-apiserver 系列文章: Kubernetes:kube-apiserver 之 scheme(一) Kubernetes:kube-apiserver 之 sc ...
- source insight 中添加指定类型文件
以下为source insight 3.X版本的设置方法: source insight 中过滤某些格式的文件. 建立source insight工程后,先暂时不要急于添加文件. 打开options- ...