Gestionar SmartArt

Obtener texto de SmartArt

Ahora el método TextFrame se ha agregado a la interfaz ISmartArtShape y a la clase SmartArtShape respectivamente. Esta propiedad te permite obtener todo el texto de SmartArt si no solo tiene texto de nodos. El siguiente código de muestra te ayudará a obtener texto de un nodo de 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();
    }
  }

Cambiar el tipo de diseño de SmartArt

Para cambiar el tipo de diseño de SmartArt. Por favor, sigue los pasos a continuación:

  • Crea una instancia de la clase Presentation.
  • Obtén la referencia de una diapositiva usando su índice.
  • Agrega SmartArt BasicBlockList.
  • Cambia el LayoutType a BasicProcess.
  • Escribe la presentación como un archivo PPTX. En el ejemplo dado a continuación, hemos agregado un conector entre dos formas.
  $pres = new Presentation();
  try {
    # Agregar SmartArt BasicProcess
    $smart = $pres->getSlides()->get_Item(0)->getShapes()->addSmartArt(10, 10, 400, 300, SmartArtLayoutType::BasicBlockList);
    # Cambiar LayoutType a BasicProcess
    $smart->setLayout(SmartArtLayoutType::BasicProcess);
    # Guardar presentación
    $pres->save("ChangeSmartArtLayout_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Comprobar la propiedad oculta de SmartArt

Por favor, ten en cuenta: el método ISmartArtNode.isHidden() devuelve verdadero si este nodo es un nodo oculto en el modelo de datos. Para comprobar la propiedad oculta de cualquier nodo de SmartArt. Por favor, sigue los pasos a continuación:

  • Crea una instancia de la clase Presentation.
  • Agrega SmartArt RadialCycle.
  • Agrega un nodo en SmartArt.
  • Comprueba la propiedad isHidden.
  • Escribe la presentación como un archivo PPTX.

En el ejemplo dado a continuación, hemos agregado un conector entre dos formas.

  $pres = new Presentation();
  try {
    # Agregar SmartArt BasicProcess
    $smart = $pres->getSlides()->get_Item(0)->getShapes()->addSmartArt(10, 10, 400, 300, SmartArtLayoutType::RadialCycle);
    # Agregar nodo en SmartArt
    $node = $smart->getAllNodes()->addNode();
    # Comprobar propiedad isHidden
    $hidden = $node->isHidden();// Devuelve verdadero

    if ($hidden) {
      # Realizar algunas acciones o notificaciones
    }
    # Guardar presentación
    $pres->save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Obtener o establecer el tipo de organigrama

Los métodos ISmartArtNode.getOrganizationChartLayout(), setOrganizationChartLayout(int) permiten obtener o establecer el tipo de organigrama asociado con el nodo actual. Para obtener o establecer el tipo de organigrama. Por favor, sigue los pasos a continuación:

  $pres = new Presentation();
  try {
    # Agregar SmartArt BasicProcess
    $smart = $pres->getSlides()->get_Item(0)->getShapes()->addSmartArt(10, 10, 400, 300, SmartArtLayoutType::OrganizationChart);
    # Obtener o Establecer el tipo de organigrama
    $smart->getNodes()->get_Item(0)->setOrganizationChartLayout(OrganizationChartLayoutType::LeftHanging);
    # Guardar presentación
    $pres->save("OrganizeChartLayoutType_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Crear un organigrama de imágenes

Aspose.Slides para PHP vía Java proporciona una API simple para crear gráficos y organigramas de imágenes de manera sencilla. Para crear un gráfico en una diapositiva:

  1. Crea una instancia de la clase Presentation.
  2. Obtén la referencia de una diapositiva por su índice.
  3. Agrega un gráfico con datos predeterminados junto con el tipo deseado (ChartType::PictureOrganizationChart).
  4. Escribe la presentación modificada en un archivo PPTX.

El siguiente código se utiliza para crear un gráfico.

  $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();
    }
  }

Obtener o establecer el estado de SmartArt

Para cambiar el tipo de diseño de SmartArt. Por favor, sigue los pasos a continuación:

  1. Crea una instancia de la clase Presentation.
  2. Agrega SmartArt en la diapositiva.
  3. Obtén o Establece el estado del Diagrama SmartArt.
  4. Escribe la presentación como un archivo PPTX.

El siguiente código se utiliza para crear un gráfico.

  # Instanciar la clase Presentation que representa el archivo PPTX
  $pres = new Presentation();
  try {
    # Agregar SmartArt BasicProcess
    $smart = $pres->getSlides()->get_Item(0)->getShapes()->addSmartArt(10, 10, 400, 300, SmartArtLayoutType::BasicProcess);
    # Obtener o Establecer el estado del Diagrama SmartArt
    $smart->setReversed(true);
    $flag = $smart->isReversed();
    # Guardar presentación
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }