スマートアートの管理

スマートアートからテキストを取得

現在、TextFrameメソッドがISmartArtShapeインターフェースおよびSmartArtShapeクラスに追加されました。このプロパティを使用すると、ノードのテキストだけでなく、SmartArtからすべてのテキストを取得できます。以下のサンプルコードは、スマートアートノードからテキストを取得するのに役立ちます。

  $pres = new Presentation("Presentation.pptx");
  try {
    $slide = $pres->getSlides()->get_Item(0);
    $smartArt = $slide->getShapes()->get_Item(0);
    $smartArtNodes = $smartArt->getAllNodes();
    foreach($smartArtNodes as $smartArtNode) {
      foreach($smartArtNode->getShapes() as $nodeShape) {
        if (!java_is_null($nodeShape->getTextFrame())) {
          echo($nodeShape->getTextFrame()->getText());
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

スマートアートのレイアウトタイプを変更する

SmartArtのレイアウトタイプを変更するには、以下の手順に従ってください。

  • Presentationクラスのインスタンスを作成します。
  • インデックスを使用してスライドの参照を取得します。
  • SmartArt BasicBlockListを追加します。
  • LayoutTypeをBasicProcessに変更します。
  • プレゼンテーションをPPTXファイルとして保存します。 以下の例では、2つの図形の間にコネクタを追加しました。
  $pres = new Presentation();
  try {
    # SmartArt BasicProcessを追加
    $smart = $pres->getSlides()->get_Item(0)->getShapes()->addSmartArt(10, 10, 400, 300, SmartArtLayoutType::BasicBlockList);
    # LayoutTypeをBasicProcessに変更
    $smart->setLayout(SmartArtLayoutType::BasicProcess);
    # プレゼンテーションを保存
    $pres->save("ChangeSmartArtLayout_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

スマートアートの隠しプロパティを確認する

注意: メソッドISmartArtNode.isHidden()は、このノードがデータモデル内の隠しノードである場合にtrueを返します。SmartArtの任意のノードの隠しプロパティを確認するには、以下の手順に従ってください。

  • Presentationクラスのインスタンスを作成します。
  • SmartArt RadialCycleを追加します。
  • スマートアートにノードを追加します。
  • isHiddenプロパティを確認します。
  • プレゼンテーションをPPTXファイルとして保存します。

以下の例では、2つの図形の間にコネクタを追加しました。

  $pres = new Presentation();
  try {
    # SmartArt BasicProcessを追加
    $smart = $pres->getSlides()->get_Item(0)->getShapes()->addSmartArt(10, 10, 400, 300, SmartArtLayoutType::RadialCycle);
    # スマートアートにノードを追加
    $node = $smart->getAllNodes()->addNode();
    # isHiddenプロパティを確認
    $hidden = $node->isHidden();// trueを返します

    if ($hidden) {
      # 何らかのアクションや通知を行う
    }
    # プレゼンテーションを保存
    $pres->save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

組織図タイプの取得または設定

メソッドISmartArtNode.getOrganizationChartLayout()setOrganizationChartLayout(int)は、現在のノードに関連付けられた組織図タイプを取得または設定することを可能にします。組織図タイプを取得または設定するには、以下の手順に従ってください。

  • Presentationクラスのインスタンスを作成します。
  • スライドにSmartArtを追加します。
  • 組織図タイプを取得または設定します。
  • プレゼンテーションをPPTXファイルとして保存します。 以下の例では、2つの図形の間にコネクタを追加しました。
  $pres = new Presentation();
  try {
    # SmartArt BasicProcessを追加
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

画像組織図の作成

Aspose.Slides for PHP via Javaは、画像組織図を簡単に作成するためのシンプルなAPIを提供します。スライド上にチャートを作成するには:

  1. Presentationクラスのインスタンスを作成します。
  2. インデックスでスライドの参照を取得します。
  3. デフォルトデータとともに必要なタイプ(ChartType::PictureOrganizationChart)でチャートを追加します。
  4. 修正したプレゼンテーションをPPTXファイルに書き込みます。

以下のコードは、チャートを作成するために使用されます。

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

スマートアートの状態の取得または設定

SmartArtのレイアウトタイプを変更するには、以下の手順に従ってください。

  1. Presentationクラスのインスタンスを作成します。
  2. スライドにSmartArtを追加します。
  3. スマートアートダイアグラムの状態を取得または設定します。
  4. プレゼンテーションをPPTXファイルとして保存します。

以下のコードは、チャートを作成するために使用されます。

  # PPTXファイルを表すPresentationクラスをインスタンス化
  $pres = new Presentation();
  try {
    # SmartArt BasicProcessを追加
    $smart = $pres->getSlides()->get_Item(0)->getShapes()->addSmartArt(10, 10, 400, 300, SmartArtLayoutType::BasicProcess);
    # スマートアートダイアグラムの状態を取得または設定
    $smart->setReversed(true);
    $flag = $smart->isReversed();
    # プレゼンテーションを保存
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }