スマートアート シェイプ ノードの管理

スマートアートノードの追加

Aspose.Slides for C++は、スマートアートシェイプを簡単に管理できる最もシンプルなAPIを提供しています。以下のサンプルコードは、スマートアートシェイプ内にノードと子ノードを追加するのに役立ちます。

  • Presentation クラスのインスタンスを作成し、スマートアートシェイプを含むプレゼンテーションをロードします。
  • インデックスを使用して最初のスライドの参照を取得します。
  • 最初のスライド内のすべてのシェイプを走査します。
  • シェイプがスマートアート型であるか確認し、スマートアートであれば選択したシェイプをスマートアートに型変換します。
  • スマートアートシェイプのNodeCollectionに新しいノードを追加し、TextFrameにテキストを設定します。
  • 新たに追加したスマートアートノードに子ノードを追加し、TextFrameにテキストを設定します。
  • プレゼンテーションを保存します。

特定の位置にスマートアートノードを追加

以下のサンプルコードでは、スマートアートシェイプのそれぞれのノードに属する子ノードを特定の位置に追加する方法を説明します。

  • Presentation クラスのインスタンスを作成します。
  • インデックスを使用して最初のスライドの参照を取得します。
  • アクセスしたスライドにスタックリスト型スマートアートシェイプを追加します。
  • 追加したスマートアートシェイプの最初のノードにアクセスします。
  • 選択したノードの位置2に子ノードを追加し、そのテキストを設定します。
  • プレゼンテーションを保存します。

スマートアートノードにアクセス

以下のサンプルコードは、スマートアートシェイプ内のノードにアクセスするのに役立ちます。スマートアートは読み取り専用であり、スマートアートシェイプが追加されるときにのみレイアウトタイプが設定される点に注意してください。

  • Presentation クラスのインスタンスを作成し、スマートアートシェイプを含むプレゼンテーションをロードします。
  • インデックスを使用して最初のスライドの参照を取得します。
  • 最初のスライド内のすべてのシェイプを走査します。
  • シェイプがスマートアート型であるか確認し、スマートアートであれば選択したシェイプをスマートアートに型変換します。
  • スマートアートシェイプ内のすべてのノードを走査します。
  • スマートアートノードの位置、レベル、テキストなどの情報にアクセスして表示します。

スマートアート子ノードにアクセス

以下のサンプルコードは、スマートアートシェイプのそれぞれのノードに属する子ノードにアクセスするのに役立ちます。

  • PresentationEx クラスのインスタンスを作成し、スマートアートシェイプを含むプレゼンテーションをロードします。
  • インデックスを使用して最初のスライドの参照を取得します。
  • 最初のスライド内のすべてのシェイプを走査します。
  • シェイプがスマートアート型であるか確認し、スマートアートであれば選択したシェイプをスマートアートExに型変換します。
  • スマートアートシェイプ内のすべてのノードを走査します。
  • 選択されたスマートアートシェイプノードごとに、特定のノード内のすべての子ノードを走査します。
  • 子ノードの位置、レベル、テキストなどの情報にアクセスして表示します。

特定の位置にスマートアート子ノードにアクセス

この例では、スマートアートシェイプのそれぞれのノードに属する特定の位置にある子ノードにアクセスする方法を学びます。

  • Presentation クラスのインスタンスを作成します。
  • インデックスを使用して最初のスライドの参照を取得します。
  • スタックリスト型スマートアートシェイプを追加します。
  • 追加したスマートアートシェイプにアクセスします。
  • アクセスしたスマートアートシェイプのインデックス0にあるノードにアクセスします。
  • 今度は、GetNodeByPosition() メソッドを使用して、アクセスしたスマートアートノードの位置1にある子ノードにアクセスします。
  • 子ノードの位置、レベル、テキストなどの情報にアクセスして表示します。

スマートアートノードを削除

この例では、スマートアートシェイプ内のノードを削除する方法を学びます。

  • Presentation クラスのインスタンスを作成し、スマートアートシェイプを含むプレゼンテーションをロードします。
  • インデックスを使用して最初のスライドの参照を取得します。
  • 最初のスライド内のすべてのシェイプを走査します。
  • シェイプがスマートアート型であるか確認し、スマートアートであれば選択したシェイプをスマートアートに型変換します。
  • スマートアートに0個以上のノードがあるか確認します。
  • 削除するスマートアートノードを選択します。
  • 選択したノードをRemoveNode() メソッドを使用して削除します。* プレゼンテーションを保存します。

特定の位置にスマートアートノードを削除

この例では、特定の位置にあるスマートアートシェイプのノードを削除する方法を学びます。

  • Presentation クラスのインスタンスを作成し、スマートアートシェイプを含むプレゼンテーションをロードします。
  • インデックスを使用して最初のスライドの参照を取得します。
  • 最初のスライド内のすべてのシェイプを走査します。
  • シェイプがスマートアート型であるか確認し、スマートアートであれば選択したシェイプをスマートアートに型変換します。
  • インデックス0のスマートアートシェイプノードを選択します。
  • 今度は、選択したスマートアートノードが2つ以上の子ノードを持っているか確認します。
  • 次に、RemoveNodeByPosition() メソッドを使用して位置1のノードを削除します。
  • プレゼンテーションを保存します。

スマートアート子ノードのカスタム位置を設定

現在、Aspose.Slides for .NETではスマートアートシェイプのXおよびYプロパティを設定できます。以下のコードスニペットは、カスタムスマートアートシェイプの位置、サイズ、および回転を設定する方法を示しています。また、新しいノードを追加すると、すべてのノードの位置とサイズが再計算されることに注意してください。

アシスタントノードの確認

以下のサンプルコードでは、スマートアートノードコレクション内のアシスタントノードを特定して変更する方法を調査します。

  • PresentationEx クラスのインスタンスを作成し、スマートアートシェイプを含むプレゼンテーションをロードします。
  • インデックスを使用して2番目のスライドの参照を取得します。
  • 最初のスライド内のすべてのシェイプを走査します。
  • シェイプがスマートアート型であるか確認し、スマートアートであれば選択したシェイプをスマートアートExに型変換します。
  • スマートアートシェイプ内のすべてのノードを走査し、アシスタントノードであるか確認します。
  • アシスタントノードの状態を通常のノードに変更します。
  • プレゼンテーションを保存します。

ノードの塗りつぶし形式を設定

Aspose.Slides for C++を使用すると、カスタムスマートアートシェイプを追加し、それらの塗りつぶし形式を設定することが可能です。この記事では、スマートアートシェイプを作成し、アクセスし、その塗りつぶし形式を設定する方法を説明します。

以下の手順に従ってください:

  • Presentation クラスのインスタンスを作成します。
  • インデックスを使用してスライドの参照を取得します。
  • レイアウトタイプを設定してスマートアートシェイプを追加します。
  • スマートアートシェイプノードのFillFormatを設定します。
  • 修正したプレゼンテーションをPPTXファイルとして書き込みます。

スマートアート子ノードのサムネイルを生成

開発者は、以下の手順に従ってスマートアートの子ノードのサムネイルを生成できます。

  1. PPTXファイルを表すPresentation クラスのインスタンスを作成します。
  2. スマートアートを追加します。
  3. インデックスを使用してノードの参照を取得します。
  4. サムネイル画像を取得します。
  5. 任意の画像形式でサムネイル画像を保存します。

以下の例では、スマートアート子ノードのサムネイルを生成します。

auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto smartArt = slide->get_Shapes()->AddSmartArt(10, 10, 400, 300, SmartArtLayoutType::BasicCycle);
auto node = smartArt->get_Node(1);

auto image = node->get_Shape(0)->GetImage();
image->Save(u"SmartArt_ChildNote_Thumbnail_out.jpeg", ImageFormat::Png);
image->Dispose();

presentation->Dispose();