Formas de Apresentação em Grupo no PHP

Visão geral

Este artigo explica como trabalhar com formas de grupo no Aspose.Slides. Mostra como adicionar uma forma de grupo a um slide, inserir formas dentro dela e salvar a apresentação atualizada. Também demonstra como acessar as formas armazenadas dentro de um grupo e ler seus valores de AlternativeText. Além disso, o artigo aborda brevemente recursos relacionados a grupos, como grupos aninhados, ordem Z e opções de bloqueio.

Adicionar um Grupo de Formas

Aspose.Slides oferece suporte ao trabalho com formas de grupo em slides. Esse recurso ajuda os desenvolvedores a criar apresentações mais ricas. Aspose.Slides for PHP via Java permite adicionar ou acessar formas de grupo. É possível adicionar formas a um grupo recém‑criado para preenchê‑lo ou acessar qualquer propriedade do grupo. Para adicionar um grupo de formas a um slide usando Aspose.Slides for PHP via Java:

  1. Crie uma instância da classe Presentation.
  2. Obtenha a referência de um slide usando seu Índice.
  3. Adicione uma forma de grupo ao slide.
  4. Adicione as formas ao grupo criado.
  5. Salve a apresentação modificada como um arquivo PPTX.

O exemplo abaixo adiciona um grupo de formas a um slide.

  # Instanciar classe Presentation
  $pres = new Presentation();
  try {
    # Obter o primeiro slide
    $sld = $pres->getSlides()->get_Item(0);
    # Acessando a coleção de formas dos slides
    $slideShapes = $sld->getShapes();
    # Adicionando uma forma de grupo ao slide
    $groupShape = $slideShapes->addGroupShape();
    # Adicionando formas dentro da forma de grupo adicionada
    $groupShape->getShapes()->addAutoShape(ShapeType::Rectangle, 300, 100, 100, 100);
    $groupShape->getShapes()->addAutoShape(ShapeType::Rectangle, 500, 100, 100, 100);
    $groupShape->getShapes()->addAutoShape(ShapeType::Rectangle, 300, 300, 100, 100);
    $groupShape->getShapes()->addAutoShape(ShapeType::Rectangle, 500, 300, 100, 100);
    # Adicionando quadro da forma de grupo
    $groupShape->setFrame(new ShapeFrame(100, 300, 500, 40, NullableBool::False, NullableBool::False, 0));
    # Gravar o arquivo PPTX no disco
    $pres->save("GroupShape.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Acessar a Propriedade AltText

Este tópico mostra etapas simples, completas com exemplos de código, para adicionar um grupo de formas e acessar a propriedade AltText de grupos de formas em slides. Para acessar o AltText de um grupo de formas em um slide usando Aspose.Slides for PHP via Java:

  1. Instancie a classe Presentation que representa o arquivo PPTX.
  2. Obtenha a referência de um slide usando seu Índice.
  3. Acesse a coleção de formas do slide.
  4. Acesse o grupo de formas.
  5. Acesse a propriedade Alternative Text.

O exemplo abaixo acessa o texto alternativo do grupo de formas.

  # Instanciar classe Presentation que representa o arquivo PPTX
  $pres = new Presentation("AltText.pptx");
  try {
    # Obter o primeiro slide
    $sld = $pres->getSlides()->get_Item(0);
    for($i = 0; $i < java_values($sld->getShapes()->size()) ; $i++) {
      # Acessando a coleção de formas dos slides
      $shape = $sld->getShapes()->get_Item($i);
      if (java_instanceof($shape, new JavaClass("com.aspose.slides.GroupShape"))) {
        # Acessando a forma de grupo.
        $grphShape = $shape;
        for($j = 0; $j < java_values($grphShape->getShapes()->size()) ; $j++) {
          $shape2 = $grphShape->getShapes()->get_Item($j);
          # Acessando a propriedade AltText
          echo($shape2->getAlternativeText());
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Perguntas frequentes

O agrupamento aninhado (um grupo dentro de outro grupo) é suportado?

Sim. GroupShape possui o método getParentGroup, que indica diretamente o suporte à hierarquia (um grupo pode ser filho de outro grupo).

Como controlo a ordem Z do grupo em relação a outros objetos no slide?

Use o método getZOrderPosition da GroupShape para inspecionar sua posição na pilha de exibição.

Posso impedir mover/editar/desagrupar?

Sim. A seção de bloqueio do grupo é exposta via GroupShapeLock, que permite restringir operações sobre o objeto.