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中设置形状组合、取消组合、编辑组合形状的更多相关文章

  1. 如何在 apache 中设置缓存有效时间

    今天学习了下如何在 apache 中设置缓存时间,记之以备忘. 在 http 报文头中,与缓存时间有关的两个字段是 Expires 以及 Cache-Control 中的 max-age,Expire ...

  2. 如何在Eclipse中设置默认的JSP文件头部编码

    如何在Eclipse中设置默认的JSP文件头部编码 一般,我们为了以后在导入和导出程序的时候(特别是项目较大,文件多)一般都默认文件编码格式为UTF-8 如果你通常都是通过Eclipse来编写程序,那 ...

  3. 如何在IIS中设置HTTPS服务

    文章:https://support.microsoft.com/en-us/help/324069/how-to-set-up-an-https-service-in-iis 在这个任务中 摘要 为 ...

  4. SPSS输出结果如何在word中设置小数点前面显示加0

    SPSS输出结果如何在word中设置小数点前面显示加0 在用统计分析软件做SPSS分析时,其输出的结果中,如果是小于1(绝对值)的数,那么会默认输出不带小数点的数值.例如0.362和 -0.141被显 ...

  5. 如何在XAMPP中设置多个网站

    xampp 是一个非常方便的本地 apache + php + mysql 的调试环境,在本地安装测试 WordPress 等各种博客.论坛程序非常方便.今天我们来给大家介绍一下,如何使用 XAMPP ...

  6. 【Java】在JTable中设置鼠标监听器,点击操作对应数据

    最终效果 鼠标点击JTable中任一数据,修改相应的信息. 确定点击的行和列 package com.dao; import java.awt.event.MouseAdapter; import j ...

  7. 如何在BIOS中设置RAID?

    随着价格的下降和相应主板的支持,目前SATA硬盘已经逐渐成为主流.但由于受芯片组和操作系统的影响,不少用户对SATA硬盘的使用及安装系统掌握不足,今天小编就给大家介绍一下SATA硬盘的日常应用技巧,希 ...

  8. 如何在SpriteBuilder中设置对象的通用属性

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在SpriteBuilder中可以为对象设置自定义类从 ...

  9. 如何在 Windows 中设置 /3GB 启动开关

    备注: 只有在下列操作系统中才支持 /3GB 开关: Windows 2000 Advanced Server Windows 2000 Datacenter Server Windows Serve ...

  10. 如何在IDM中设置代理服务器?

    很多时候,大家下载文件都是在国外的一些网站上进行下载,这样不可免会受到自身国内网络的限制,另一方面下载源为避免服务器带宽占用过多而限制下载速率,这就会导致文件下载极慢,甚至几KB每秒. 这种情况是不是 ...

随机推荐

  1. CF82D Two out of Three

    题目描述 Vasya has recently developed a new algorithm to optimize the reception of customer flow and he ...

  2. King's Tour 题解

    King's Tour 题面大意 在 \(n\times m\) 的网格中构造一种从 \((1,1)\) 走到 \((a,b)\) 的方案,要求经过所有格子恰好一次,格子之间八联通. 思路分析 模拟赛 ...

  3. 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件

    在我们开发的前端项目中,往往为了方便,都需对一些控件进行自定义的处理,以便实现快速的数据绑定以及便捷的使用,本篇随笔介绍通过抽取常见字典列表,实现通用的字典类型绑定:以及通过自定义控件的属性处理,实现 ...

  4. k8s-单节点升级为集群(高可用)

    单master节点升级为高可用集群 对于生产环境来说,单节点master风险太大了. 非常有必要做一个高可用的集群,这里的高可用主要是针对控制面板来说的,比如 kube-apiserver.etcd. ...

  5. RSA总结 From La神

    常用工具 分解大素数 factordb (http://www.factordb.com / API: http://factordb.com/api?query=) yafu (p q 相差过大或过 ...

  6. Go语言基准测试(benchmark)三部曲之二:内存篇

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<Go语言基准测试(benchm ...

  7. Session入门实例

    session对象(是JSP的9大内置对象之一): (1)session代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止,这个过程就是一次会话. (2)session作用 ...

  8. CSS 浮动和清除浮动方法总结

    作者:WangMin 格言:努力做好自己喜欢的每一件事 什么是浮动 float? 标准流:盒子会各占整行位置.子盒子若是标准流,父盒子虽然没有高度,但是会撑开父盒子高度. 浮动:盒子浮了起来,不会占据 ...

  9. 文心一言 VS 讯飞星火 VS chatgpt (128)-- 算法导论11.1 3题

    三.用go语言,试说明如何实现一个直接寻址表,表中各元素的关键字不必都不相同,且各元素可以有卫星数据.所有三种字典操作(INSERT.DELETE和SEARCH)的运行时间应为O(1)(不要忘记 DE ...

  10. HTML基础_01

    HTML 基础_01 01.初识 HTML 什么是 HTML! Hyper Text Markup Language(超文本标记语言).超文本包括文字.图片.音频.视频.动画等. HTML5,提供了一 ...