一、前言及环境构建

SmartArt图形常用于将文字量少、层次较明显的文本转换为具有各种附属关系、并列关系等关系结构的文档插图,以此来快速、轻松、有效地传达信息。本文将通过Java程序来介绍为PPT文档添加SmartArt图形的方法,并演示如何从文档中提取SmartArt图形的文本信息。

此次教程所用工具为Free Spire.Presentation for Java(免费版),可通过官网下载获取。工具下载后进行解压,然后将lib文件夹下的Spire.Presentation.jar 文件导入Java程序。或者也可直接通过maven仓库进行工具的下载导入。

二、代码演示

示例1 添加SmartArt图形到PPT

以下代码里包含了添加默认SmartArt图形及创建自定义图形节点两种方式。

import com.spire.presentation.*;

import com.spire.presentation.diagrams.*;

public class AddSmartArt {

public static void main(String[] args) throws Exception {

//创建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("output/AddSmartArt.pptx",FileFormat.PPTX_2013);

ppt.dispose();

}

}

添加效果:

示例2 从PPT中提取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 ExtractTextFromSmartart {

public static void main(String[] args) throws Exception{

//创建实例,加载测试文档

Presentation presentation = new Presentation();

presentation.loadFromFile("C:\\Users\\Test1\\Desktop\\AddSmartArt.pptx");

//新建txt文档,用于写入提取出来的文本

String result = "output/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);

bw.write("以下是从SmarArt图形中提取出的文本信息:" + "\r\n");

//遍历所有幻灯片并获取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();

}

}

提取效果:

(本文完)

spire抽取ppt图片java_Java 在PPT中添加、提取SmartArt图形相关推荐

  1. 网页上符号显示成方框_如何在word、PPT、Excel以及PDF中添加带√的方框

    办公的时候,我们接触到的是各种不同格式的文档,那么关于他们的编辑,大家又了解多少呢?比如说,在文档中添加带√的方框,应该如何添加? 今天这里就分享Word.PPT.Excel以及PDF的添加方法,希望 ...

  2. 骑缝章 Java_Java 在PDF中添加骑缝章示例解析

    骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java ...

  3. java setrotation_Java 在Word文档中添加和旋转图形

    一.前言及环境搭建 在Word文档中,我们可以在录入文本信息时加入一些图形,来使内容更加生动形象且富有独特样式.前文中演示过如何在Excel工作表中添加.读取和删除形状,同时也介绍过怎样在PPT文档中 ...

  4. java pdf添加图片水印图片_Java 在PDF中添加文本水印、图片水印(基于Spire.Cloud.SDK for Java)...

    Spire.Cloud.SDK for Java提供了接口pdfWartermarkApi可用于添加文本水印addTextWartermark()和图片水印addImageWartermark()到P ...

  5. 骑缝章 Java_Java 在PDF中添加骑缝章

    骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具 Free Spire.PDF for Java ...

  6. java pdf添加图片水印图片_Java 在PDF中添加文本水印、图片水印

    (推荐)方式1: 创建Maven项目程序,通过maven仓库下载导入.以IDEA为例,新建Maven项目,在xml文件中配置maven仓库路径,并指定spire.cloud.sdk的依赖,如下: co ...

  7. android提取图片颜色代码,Android 中动态提取图片中颜色作为主题色

    功能需求 一个页面中顶部显示一张图片(图片从网络加载),此时需要根据图片的颜色来动态调整顶部标题栏的背景色. 技术要求 Android 调色板支持库 实现过程 1.添加调色板支持库 dependenc ...

  8. html给img添加滤镜,给图片在博客中添加滤镜效果_CSS/HTML

    配合同事文章的技巧,用自己的博客来测试一下.首先插入一张测试图片: 终极技巧之图片篇:为图片添加滤镜效果 纯文字博客看上去会显得很枯燥,适当的配图能够让页面更美观,也能更好地表达自己的思想.那么如何为 ...

  9. java fx插入图片,javafx在tableview中添加图像

    我使用了你的代码但是使用了更新版本的Netbeans . 我还添加了一个String列 . import javafx.scene.image.ImageView; public class Cust ...

最新文章

  1. 云桌面可附加桌面文件的程序_给我几分钟,还你一个小清新的电脑桌面
  2. 双通输入法源码公布 by 尉迟方
  3. java pashone_java – 如何使用onejar Maven插件在清单中设置附加的Class-Path条目?
  4. JAVA入门笔记·JAVA名词及环境搭建
  5. python引入同目录文件_Python的文件目录操作
  6. 命名空间“Microsoft.AspNet”中不存在类型或命名空间名“Mvc”
  7. web实现远程桌面:Apache Guacamole
  8. 每天一道LeetCode-----计算字符串s中有多少个子序列和字符串t相等
  9. Cassandra Dev 1: Cassandra 入门
  10. 什么是真正的架构设计?
  11. ubuntu13.10 编译时 关于链接xlib 库阶段出错的问题解决
  12. php中没有dockerfile,Dockerfile在RUN composer install命令中没有使用缓...
  13. 使用Unoconv和LibreOffice进行格式转换实现在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件
  14. RabbitMQ单机瞎玩(2)
  15. 吴恩达深度学习课程第二章第一周编程作业
  16. mysql双机热备份windows_window下使用mysql双机热备份
  17. 基于WPA的暴力破解(JAVA实现破解WIFI)
  18. jenkins 使用报ERROR: svn: E155010: The node ‘/aaa/bbb/ccc/ddd‘ was not found.
  19. excel学习笔记(一)
  20. 守望先锋:地图工坊FOR,IF,WHILE分享

热门文章

  1. centos安装apche
  2. 推荐一款好用的图标库—— Material Design Icons
  3. DeepMind 让AI 拥有记忆并实现序列学习,AlphaGo 一周年技术盘点
  4. JUST技术:利用轨迹拼接分析实时可达区域
  5. 计算机网络及工程实践西安电子科技有限公司,计算机网络-西安电子科技大学电子工程学院.PDF...
  6. 解决helix.toolkit obj模型贴图查找失败导致的异常
  7. 盘点益生菌的8大益处
  8. ImportError: ./deform_conv_cuda.cpython-37m-x86_64-linux-gn.so: undefined symbol: _ZN6caffe26detail3
  9. 众安实业持续看好萤石矿产资源,新能源产业发展前景
  10. ewido下载和安装加破解方法