-
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(); } }
来源:
https://www.cnblogs.com/Yesi/p/14306492.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比