SmartArt 其实就是一个文字的可视化工具,用户可在 PowerPoint,Word,Excel 中使用该特性创建各种图形图表。SmartArt 图形是信息和观点的视觉表示形式。可以通过从多种不同布局中进行选择来创建 SmartArt 图形,从而快速、轻松、有效地传达信息。简单的来说 SmartArt 就是 PPT 内建的逻辑图表,主要用于表达文本之间的逻辑关系,可帮助你轻松且高效地传达信息。本文就将为您介绍如何通过 Java 应用程序在 PPT 中创建 SmartArt 图形。下面是我整理的具体步骤及方法,并附上 Java 代码供大家参考。
代码编译环境:
IntelliJIDEA 2019(jdk 1.8.0)
PresentationJar 包:Free Spire.Presentation for Java 5.1.0
引入 jar 包
导入方法 1:
手动引入。将Free Spire. Presentationfor Java下载到本地,解压,找到 lib 文件夹下的 Spire. Presentation.jar 文件。在 IDEA 中打开如下界面,将本地路径中的 jar 文件引入 Java 程序:
导入方法 2:如果您想通过 Maven 安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.presentation.free</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
复制代码
创建 SmartArt 图形
创建 SmartArt 图形时,可根据创建的图形,在预设的节点中添加内容;也可以根据设计需要自行添加节点或者删除节点。以下,是本次创建 SmartArt 图形的主要步骤:
创建 Presentation 类的对象。
通过 Presentation.getSlides().get(intindex) 方法获取指定幻灯片。
使用 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(intindex) 方法获取指定节点,然后使用 ISmartArtNode.getTextFrame().setText(Stringstring) 方法向节点添加内容。
如需自定义节点内容,可在添加图形后,通过 ISmartArt.getNodes().removeNode(IsmartArtNode iSmartArtNode) 方法删除原有节点后,以 ISmartArt.getNodes().addNode() 方法添加节点和 IsmartArtNode.getChildNodes().addNode() 方法添加子节点,然后采用上一步骤的方法添加内容到自定义的节点。
最后,使用 Presentation.saveToFile(Stringfile, FileFormat fileFormat) 方法保存幻灯片文档到指定路径。
完整代码
Java
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();
}
}
复制代码
效果图
—本文完—
评论