Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3080254
  • 博文数量: 167
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1673
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 10:00
文章分类

全部博文(167)

文章存档

2022年(15)

2021年(31)

2020年(19)

2019年(48)

2018年(45)

2017年(9)

我的朋友

分类: Java

2020-05-08 17:53:09

SmartArt 图形通过将文字、图形从多种不同布局、组合来表现内容和观点的逻辑关系,能够快速、有效地传达设计者的意图和信息。这种图文表达的视觉表示形式常用于PPTWordExcel等办公文档中。本篇文章以在PPT中创建SmartArt图形为例来介绍通过Java程序来实现的具体方法。

工具Free Spire.Presentation for Java可在e-iceblue中文官网站进行下载,然后将lib文件夹下的jar导入程序。

  1. import com.spire.presentation.*;
  2. import com.spire.presentation.diagrams.*;

  3. public class SmartArt {
  4.     public static void main(String[] args) throws Exception{
  5.         //创建PPT文档,获取一张幻灯片(创建的空白PPT文档,默认包含一张幻灯片)
  6.         Presentation ppt = new Presentation();
  7.         ISlide slide = ppt.getSlides().get(0);

  8.         //创建SmartArt图形1
  9.         ISmartArt smartArt1 = slide.getShapes().appendSmartArt(50,50,200,200, SmartArtLayoutType.BASIC_CYCLE);//在幻灯片指定位置添加指定大小和布局类型的SmartArt图形
  10.         smartArt1.setColorStyle(SmartArtColorType.COLORFUL_ACCENT_COLORS_4_TO_5);//设置SmartArt图形颜色类型
  11.         smartArt1.setStyle(SmartArtStyleType.INTENCE_EFFECT);//设置SmartArt图形样式
  12.         ISmartArtNode smartArtNode1 = smartArt1.getNodes().get(0);
  13.         smartArtNode1.getTextFrame().setText("设计");//获取默认节点,添加内容
  14.         smartArt1.getNodes().get(1).getTextFrame().setText("模仿");
  15.         smartArt1.getNodes().get(2).getTextFrame().setText("学习");
  16.         smartArt1.getNodes().get(3).getTextFrame().setText("实践");
  17.         smartArt1.getNodes().get(4).getTextFrame().setText("创新");


  18.         //创建SmartArt图形2,自定义节点内容
  19.         ISmartArt smartArt2 = slide.getShapes().appendSmartArt(400,200,200,200,SmartArtLayoutType.BASIC_RADIAL);
  20.         smartArt2.setColorStyle(SmartArtColorType.DARK_2_OUTLINE);
  21.         smartArt2.setStyle(SmartArtStyleType.MODERATE_EFFECT);
  22.         //删除默认的节点(SmartArt中的图形)
  23.         for (Object a : smartArt2.getNodes()) {
  24.             smartArt2.getNodes().removeNode(0);
  25.         }
  26.         //添加一个母节点
  27.         ISmartArtNode node2 = smartArt2.getNodes().addNode();
  28.         //在母节点下添加三个子节点
  29.         ISmartArtNode node2_1 = node2.getChildNodes().addNode();
  30.         ISmartArtNode node2_2 = node2.getChildNodes().addNode();
  31.         ISmartArtNode node2_3 = node2.getChildNodes().addNode();
  32.         //在节点上设置文字及文字大小
  33.         node2.getTextFrame().setText("设备");
  34.         node2.getTextFrame().getTextRange().setFontHeight(14f);
  35.         node2_1.getTextFrame().setText("机械");
  36.         node2_1.getTextFrame().getTextRange().setFontHeight(12f);
  37.         node2_2.getTextFrame().setText("电气");
  38.         node2_2.getTextFrame().getTextRange().setFontHeight(12f);
  39.         node2_3.getTextFrame().setText("自动化");
  40.         node2_3.getTextFrame().getTextRange().setFontHeight(12f);

  41.         // 保存文档
  42.         ppt.saveToFile("AddSmartArt.pptx",FileFormat.PPTX_2013);
  43.         ppt.dispose();
  44.     }
  45. }


阅读(380) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~