-
Java 在PPT中创建SmartArt图形、读取SmartArt图形中的文本
一、概述及环境准备
SmartArt 图形通过将文字、图形从多种不同布局、组合来表现内容和观点的逻辑关系,能够快速、有效地传达设计者的意图和信息。这种图文表达的视觉表示形式常用于PPT,Word,Excel等办公文档中。本文将以在PPT中创建SmartArt图形为例来介绍通过Java程序来添加SmartArt图形到PPT的方法,以及如何读取SmartArt图形中的文本内容。
工具:Free Spire.Presentation for Java(免费版)
Jar获取及导入:官网下载jar包 https://www.e-iceblue.cn/Downloads/Free-Spire-Presentation-JAVA.html,并解压将lib文件夹下的jar文件导入Java程序,或者通过maven仓库下载导入https://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.html
二、代码示例
1. Java在PPT中创建SmartArt图形
这里创建SmartArt形状时,可在默认创建的形状中添加内容,也可以自定义图形节点来添加内容。
import com.spire.presentation.*; import com.spire.presentation.diagrams.*; public class SmartArt { public static void main(String[] args) throws Exception{ //创建PPT文档,获取一张幻灯片(创建的空白PPT文档,默认包含一张幻灯片) Presentation ppt = new Presentation(); ISlide slide = ppt.getSlides().get(0); //创建SmartArt图形1 ISmartArt smartArt1 = slide.getShapes().appendSmartArt(50,50,200,200, SmartArtLayoutType.BASIC_CYCLE);//在幻灯片指定位置添加指定大小和布局类型的SmartArt图形 smartArt1.setColorStyle(SmartArtColorType.COLORFUL_ACCENT_COLORS_4_TO_5);//设置SmartArt图形颜色类型 smartArt1.setStyle(SmartArtStyleType.INTENCE_EFFECT);//设置SmartArt图形样式 ISmartArtNode smartArtNode1 = smartArt1.getNodes().get(0); smartArtNode1.getTextFrame().setText("设计");//获取默认节点,添加内容 smartArt1.getNodes().get(1).getTextFrame().setText("模仿"); smartArt1.getNodes().get(2).getTextFrame().setText("学习"); smartArt1.getNodes().get(3).getTextFrame().setText("实践"); smartArt1.getNodes().get(4).getTextFrame().setText("创新"); //创建SmartArt图形2,自定义节点内容 ISmartArt smartArt2 = slide.getShapes().appendSmartArt(400,200,200,200,SmartArtLayoutType.BASIC_RADIAL); smartArt2.setColorStyle(SmartArtColorType.DARK_2_OUTLINE); smartArt2.setStyle(SmartArtStyleType.MODERATE_EFFECT); //删除默认的节点(SmartArt中的图形) for (Object a : smartArt2.getNodes()) { smartArt2.getNodes().removeNode((ISmartArtNode) a); } //添加一个母节点 ISmartArtNode node2 = smartArt2.getNodes().addNode(); //在母节点下添加三个子节点 ISmartArtNode node2_1 = node2.getChildNodes().addNode(); ISmartArtNode node2_2 = node2.getChildNodes().addNode(); ISmartArtNode node2_3 = node2.getChildNodes().addNode(); //在节点上设置文字及文字大小 node2.getTextFrame().setText("设备"); node2.getTextFrame().getTextRange().setFontHeight(14f); node2_1.getTextFrame().setText("机械"); node2_1.getTextFrame().getTextRange().setFontHeight(12f); node2_2.getTextFrame().setText("电气"); node2_2.getTextFrame().getTextRange().setFontHeight(12f); node2_3.getTextFrame().setText("自动化"); node2_3.getTextFrame().getTextRange().setFontHeight(12f); // 保存文档 ppt.saveToFile("AddSmartArt.pptx",FileFormat.PPTX_2013); ppt.dispose(); } }
创建结果:
2. 读取SmartArt中的文本
import com.spire.presentation.*; import com.spire.presentation.diagrams.ISmartArt; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; public class GetTextOfSmartArt { public static void main(String[] args) throws Exception{ //创建实例,加载测试文档 Presentation presentation = new Presentation(); presentation.loadFromFile("AddSmartArt.pptx"); //新建txt文档,用于写入提取出来的文本 String result = "extractTextOfSmartArt.txt"; File file=new File(result); if(file.exists()){ file.delete(); } file.createNewFile(); FileWriter fw =new FileWriter(file,true); BufferedWriter bw =new BufferedWriter(fw); //遍历所有幻灯片并获取SmartArt图形. for (int i = 0; i < presentation.getSlides().getCount(); i++) { for (int j = 0; j < presentation.getSlides().get(i).getShapes().getCount(); j++) { if (presentation.getSlides().get(i).getShapes().get(j) instanceof ISmartArt) { ISmartArt smartArt = (ISmartArt)presentation.getSlides().get(i).getShapes().get(j); //提取SmartArt中的文本,写入txt for (int k = 0; k < smartArt.getNodes().getCount(); k++) { bw.write(smartArt.getNodes().get(k).getTextFrame().getText() + "\r\n"); } } } } bw.flush(); bw.close(); fw.close(); } }
文本提取结果:
出 处:https://www.cnblogs.com/Yesi/p/12964332.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置