SmartArt其实就是一个文字的可视化工具,用户可在PowerPoint,Word,Excel中使用该特性创建各种图形图表。SmartArt 图形是信息和观点的视觉表示形式。可以通过从多种不同布局中进行选择来创建 SmartArt 图形,从而快速、轻松、有效地传达信息。简单的来说SmartArt就是PPT内建的逻辑图表,主要用于表达文本之间的逻辑关系,可帮助你快速、轻松、有效的传达信息。本文就将为您介绍如何通过Java应用程序在PPT中创建SmartArt图形。下面是我整理的具体步骤及方法,并附上Java代码供大家参考。

代码编译环境:

IntelliJ IDEA 2019(jdk 1.8.0)

Presentation Jar包:Free Spire.Presentation for Java 5.1.0

引入jar

导入方法1:

手动引入。将Free Spire. Presentation for Java下载到本地,解压,找到lib文件夹下的Spire. Presentation.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:

导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。

  1. <repositories>
  2. <repository>
  3. <id>com.e-iceblue</id>
  4. <name>e-iceblue</name>
  5. <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
  6. </repository>
  7. </repositories>
  8. <dependencies>
  9. <dependency>
  10. <groupId>e-iceblue</groupId>
  11. <artifactId>spire.presentation.free</artifactId>
  12. <version>5.1.0</version>
  13. </dependency>
  14. </dependencies>

创建 SmartArt 图形

  • 创建 SmartArt 图形时,可根据创建的图形,在预设的节点中添加内容;也可以根据设计需要自行添加节点或者删除节点。下面,是本次创建 SmartArt 图形的主要步骤:
  • 创建 Presentation 类的对象。
  • 通过 Presentation.getSlides().get(int index) 方法获取指定幻灯片。
  • 使用 ISlide.getShapes().appendSmartArt(float x, float y, float width, float height, SmartArtLayoutType layoutType) 方法添加 SmartArt 图形到幻灯片。
  • 使用 IsmartArt.setColorStyle(SmartArtColorType smartArtColorType)方法和IsmartArt.setStyle(SmartArtStyleType smartArtStyleType) 方法设置图形颜色和样式。
  • 通过 IsmartArtNode.getNodes().get(int index)方法获取指定节点,然后使用ISmartArtNode.getTextFrame().setText(String string) 方法向节点添加内容。
  • 如需自定义节点内容,可在添加图形后,通过 ISmartArt.getNodes().removeNode(IsmartArtNode iSmartArtNode) 方法删除原有节点后,以 ISmartArt.getNodes().addNode() 方法添加节点和 IsmartArtNode.getChildNodes().addNode() 方法添加子节点,然后采用上一步骤的方法添加内容到自定义的节点。
  • 最后,使用 Presentation.saveToFile(String file, FileFormat fileFormat) 方法保存幻灯片文档到指定路径。

完整代码

Java

  1. import com.spire.presentation.*;
  2. import com.spire.presentation.diagrams.*;
  3.  
  4. public class SmartArt {
  5. public static void main(String[] args) throws Exception{
  6. //创建PPT文档,获取一张幻灯片(创建的空白PPT文档,默认包含一张幻灯片)
  7. Presentation ppt = new Presentation();
  8. ISlide slide = ppt.getSlides().get(0);
  9.  
  10. //创建SmartArt图形1
  11. ISmartArt smartArt1 = slide.getShapes().appendSmartArt(50,50,200,200, SmartArtLayoutType.BASIC_CYCLE);//在幻灯片指定位置添加指定大小和布局类型的SmartArt图形
  12. smartArt1.setColorStyle(SmartArtColorType.COLORFUL_ACCENT_COLORS_4_TO_5);//设置SmartArt图形颜色类型
  13. smartArt1.setStyle(SmartArtStyleType.INTENCE_EFFECT);//设置SmartArt图形样式
  14. ISmartArtNode smartArtNode1 = smartArt1.getNodes().get(0);//获取节点
  15. smartArtNode1.getTextFrame().setText("设计");//添加内容
  16. smartArt1.getNodes().get(1).getTextFrame().setText("求实");
  17. smartArt1.getNodes().get(2).getTextFrame().setText("练习");
  18. smartArt1.getNodes().get(3).getTextFrame().setText("实践");
  19. smartArt1.getNodes().get(4).getTextFrame().setText("创新");
  20.  
  21. //创建SmartArt图形2,自定义节点内容
  22. ISmartArt smartArt2 = slide.getShapes().appendSmartArt(400,200,200,200,SmartArtLayoutType.BASIC_RADIAL);
  23. smartArt2.setColorStyle(SmartArtColorType.DARK_2_OUTLINE);
  24. smartArt2.setStyle(SmartArtStyleType.MODERATE_EFFECT);
  25. //删除默认的节点(SmartArt中的图形)
  26. for (Object a : smartArt2.getNodes())
  27. {
  28. smartArt2.getNodes().removeNode((ISmartArtNode) a);
  29. }
  30. //添加一个母节点
  31. ISmartArtNode node2 = smartArt2.getNodes().addNode();
  32. //在母节点下添加三个子节点
  33. ISmartArtNode node2_1 = node2.getChildNodes().addNode();
  34. ISmartArtNode node2_2 = node2.getChildNodes().addNode();
  35. ISmartArtNode node2_3 = node2.getChildNodes().addNode();
  36. //在节点上设置文字及文字大小
  37. node2.getTextFrame().setText("设备");
  38. node2.getTextFrame().getTextRange().setFontHeight(14f);
  39. node2_1.getTextFrame().setText("机械");
  40. node2_1.getTextFrame().getTextRange().setFontHeight(12f);
  41. node2_2.getTextFrame().setText("电气");
  42. node2_2.getTextFrame().getTextRange().setFontHeight(12f);
  43. node2_3.getTextFrame().setText("自动化");
  44. node2_3.getTextFrame().getTextRange().setFontHeight(12f);
  45.  
  46. //保存文档
  47. ppt.saveToFile("AddSmartArt.pptx",FileFormat.PPTX_2013);
  48. ppt.dispose();
  49. }
  50. }

效果图

—本文完—

如何通过Java应用程序在PPT中创建SmartArt图形的更多相关文章

  1. Java 在PPT中创建SmartArt图形、读取SmartArt图形中的文本

    一.概述及环境准备 SmartArt 图形通过将文字.图形从多种不同布局.组合来表现内容和观点的逻辑关系,能够快速.有效地传达设计者的意图和信息.这种图文表达的视觉表示形式常用于PPT,Word,Ex ...

  2. C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形

    本文介绍通过C#和VB.NET程序代码来创建和编辑PPT文档中的SmartArt图形.文中将分两个操作示例来演示创建和编辑结果. 使用工具:Spire.Presentation for .NET ho ...

  3. java 使用 apoi 更新 ppt 中图表的数据

    本文源码:    1. https://github.com/zhongchengyi/zhongcy.demos/tree/master/apoi-ppt-chart 2. 在第5节也有核心源码 1 ...

  4. Java 在PPT中创建散点图

    本文将以Java代码示例展示如何在PPT幻灯片中创建散点图表. 创建图表前 需要在Java程序中导入用于操作PPT的jar包 Free Spire.Presentation for Java.可参考如 ...

  5. java web程序 html标签中<th>和<td>的用法区别:

    <th>是用于表头式的 <td>是列 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional ...

  6. 使用 Acegi 保护 Java 应用程序

    第 1 部分: 架构概览和安全过滤器 Acegi Security System 是一种功能强大并易于使用的替代性方案,使您不必再为 Java 企业应用程序编写大量的安全代码.虽然它专门针对使用 Sp ...

  7. C#提取PPT文本——提取SmartArt中的文本、批注中的文本

    提取文本的情况在工作和学习中常会遇到,在前面的文章中,已经讲述了如何提取PPT中文本框里的文本,在本篇文章中,将介绍如何使用C#代码语言提取PPT文档中SmartArt和批注中的文本.同样的,程序里面 ...

  8. JAVA基础-输入输出:1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上。

    1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上. package Test03; ...

  9. Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,

    36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口 ...

  10. 在 NetBeans IDE 6.0 中分析 Java 应用程序性能

    NetBeans IDE 6.0 包含一个强大的性能分析工具,可提供与应用程序运行时行为有关的重要信息.通过 NetBeans 性能分析工具,我们可以方便地在 IDE 中监控应用程序的线程状态.CPU ...

随机推荐

  1. windows-git-tagslist

    windows平台使用 Git-bash + vim + Taglist + ctags + cscope 安装Git for win版 安装ctags for win版,目录添加到环境变量 下载 T ...

  2. 狂神的学习笔记demo0607

    Ctrl+D 复制此行到下一行 sout   快捷打出System.out.println(); 修饰符 static 静态的 finalf 常量 变量的命名规范 见名知意 类成员变量:首字母小写和驼 ...

  3. (六).JavaScript的数组(2)

    1.10 作用域链 定义: 作用域链:查找变量的过程 作用: 查找变量 查找规则:首先会在自身作用域找变量,找到就用 如果没有,就去上级作用域查找,找到就用 如果没有,一直往上找,直到全局作用域,有就 ...

  4. 我做的mysql 一些题 里面大部分都是mysql的方法

    基础题:-- 1. 查询Student表中的所有记录的Sname.Ssex和Class列.1 select sname,ssex,class from student;-- 2. 查询教师所有的单位即 ...

  5. Blob、FormData

    Blob 在我的理解中这个就是一个二进制的存储类型,就像一张图片就是一组二进制,很多文件都是一组二进制.这个就是数据库用来存储二进制类型. FormData 为什么使用 FormData 来进行数据的 ...

  6. 引用本地的layUI

    <script src="/public/vendor/layui-v2.5.6/layui.all.js"></script>

  7. k8s探针

    探针是由kubelet对容器执行的定期诊断.要执行诊断,kubelet调用由容器实现的Handler.有三类处理程序: ExecAction:在容器内执行指定命令.如果命令退出时返回码为0认为诊断成功 ...

  8. Arduino优化 减少重复代码 例2

    Example->Blink: void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUI ...

  9. 《Zookeeper分布式过程协同技术详解》之简介-分布式与Zookeeper简介

    [常见的分布式架构场景面临的问题]一般在主从架构中,主节点进程负责跟踪从节点的状态和任务的有效性,并分配任务到从节点.而这种架构中必须要解决的几个问题是,主节点崩溃.从节点崩溃.通信故障.主节点崩溃: ...

  10. Codeforces Round 857 (Div. 2) A-D

    Codeforces Round 857 (Div. 2) A. Likes 求每回合最大的数列:先全使用正数,每个正数对ans++,再全使用负数,每个负数对ans-- 求每回合最小的数列:方法1(模 ...