管理 SmartArt

从 SmartArt 中获取文本

现在ISmartArtShape接口和SmartArtShape类分别添加了TextFrame方法。该属性允许您从SmartArt中获取所有文本,如果它不仅包含节点文本。以下示例代码将帮助您从 SmartArt 节点中获取文本。

Presentation pres = new Presentation("Presentation.pptx");
try {
    ISlide slide = pres.getSlides().get_Item(0);
    ISmartArt smartArt = (ISmartArt)slide.getShapes().get_Item(0);

    ISmartArtNodeCollection smartArtNodes = smartArt.getAllNodes();
    for (ISmartArtNode smartArtNode : smartArtNodes)
    {
        for (ISmartArtShape nodeShape : smartArtNode.getShapes())
        {
            if (nodeShape.getTextFrame() != null)
                System.out.println(nodeShape.getTextFrame().getText());
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

更改 SmartArt 的布局类型

为了更改SmartArt的布局类型,请按照以下步骤操作:

  • 创建Presentation类的实例。
  • 使用其索引获取幻灯片的引用。
  • 添加SmartArt 基本块列表。
  • 更改LayoutType为基本过程。
  • 将演示文稿写入 PPTX 文件。 在下面给出的示例中,我们在两个形状之间添加了连接器。
Presentation pres = new Presentation();
try {
    // 添加 SmartArt 基本过程
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);

    // 将 LayoutType 更改为基本过程
    smart.setLayout(SmartArtLayoutType.BasicProcess);

    // 保存演示文稿
    pres.save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

检查 SmartArt 的隐藏属性

请注意:方法ISmartArtNode.isHidden()如果该节点在数据模型中是隐藏节点,则返回true。为了检查任何SmartArt节点的隐藏属性,请按照以下步骤操作:

  • 创建Presentation类的实例。
  • 添加SmartArt 径向循环。
  • 在 SmartArt 上添加节点。
  • 检查isHidden属性。
  • 将演示文稿写入 PPTX 文件。

在下面给出的示例中,我们在两个形状之间添加了连接器。

Presentation pres = new Presentation();
try {
    // 添加 SmartArt 基本过程 
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.RadialCycle);

    // 在 SmartArt 上添加节点 
    ISmartArtNode node = smart.getAllNodes().addNode();

    // 检查 isHidden 属性
    boolean hidden = node.isHidden(); // 返回 true

    if (hidden)
    {
        // 执行一些操作或通知
    }
    // 保存演示文稿
    pres.save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

获取或设置组织结构图类型

方法ISmartArtNode.getOrganizationChartLayout()setOrganizationChartLayout(int)允许获取或设置与当前节点相关的组织结构图类型。为了获取或设置组织结构图类型,请按照以下步骤操作:

Presentation pres = new Presentation();
try {
    // 添加 SmartArt 基本过程
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);

    // 获取或设置组织结构图类型
    smart.getNodes().get_Item(0).setOrganizationChartLayout(OrganizationChartLayoutType.LeftHanging);

    // 保存演示文稿
    pres.save("OrganizeChartLayoutType_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

创建图片组织结构图

Aspose.Slides for Java 提供了一个简单的 API,便于以简单的方式创建 PictureOrganization 图表。要在幻灯片上创建图表:

  1. 创建Presentation类的实例。
  2. 通过索引获取幻灯片的引用。
  3. 添加具有默认数据的图表以及所需的类型(ChartType.PictureOrganizationChart)。
  4. 将修改后的演示文稿写入 PPTX 文件。

以下代码用于创建图表。

Presentation pres = new Presentation("test.pptx");
try {
    ISmartArt smartArt = pres.getSlides().get_Item(0).getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);
    pres.save("OrganizationChart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

获取或设置 SmartArt 状态

为了更改SmartArt的布局类型,请按照以下步骤操作:

  1. 创建Presentation类的实例。
  2. 在幻灯片上添加SmartArt
  3. 获取设置 SmartArt 图表的状态。
  4. 将演示文稿写入 PPTX 文件。

以下代码用于创建图表。

// 实例化表示 PPTX 文件的 Presentation 类
Presentation pres = new Presentation();
try {
    // 添加 SmartArt 基本过程
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicProcess);
    
    // 获取或设置 SmartArt 图表的状态
    smart.setReversed(true);
    boolean flag = smart.isReversed();
    
    // 保存演示文稿
    pres.save("output.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}