Remover Slides de Apresentações em PHP

Introdução

Se um slide (ou seu conteúdo) se tornar redundante, você pode excluí-lo. Aspose.Slides fornece a classe Presentation que encapsula SlideCollection, que é um repositório para todos os slides de uma apresentação. Usando ponteiros (referência ou índice) para um objeto Slide conhecido, você pode especificar o slide que deseja remover.

Remover um Slide por Referência

  1. Crie uma instância da classe Presentation.
  2. Obtenha uma referência do slide que deseja remover através de seu ID ou Índice.
  3. Remova o slide referenciado da apresentação.
  4. Salve a apresentação modificada.

Este código PHP mostra como remover um slide por meio de sua referência:

  # Instanciar um objeto Presentation que representa um arquivo de apresentação
  $pres = new Presentation("demo.pptx");
  try {
    # Acessa um slide através de seu índice na coleção de slides
    $slide = $pres->getSlides()->get_Item(0);
    # Remove um slide através de sua referência
    $pres->getSlides()->remove($slide);
    # Salva a apresentação modificada
    $pres->save("modified.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

Remover um Slide por Índice

  1. Crie uma instância da classe Presentation.
  2. Remova o slide da apresentação através de sua posição de índice.
  3. Salve a apresentação modificada.

Este código PHP mostra como remover um slide por meio de seu índice:

  # Instancia um objeto Presentation que representa um arquivo de apresentação
  $pres = new Presentation("demo.pptx");
  try {
    # Remove um slide através do índice do slide
    $pres->getSlides()->removeAt(0);
    # Salva a apresentação modificada
    $pres->save("modified.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

Remover Slides de Layout Não Utilizados

Aspose.Slides fornece o método removeUnusedLayoutSlides (da classe Compress) para permitir que você exclua slides de layout indesejados e não usados. Este código PHP mostra como remover um slide de layout de uma apresentação PowerPoint:

  $pres = new Presentation("pres.pptx");
  try {
    Compress->removeUnusedLayoutSlides($pres);
    $pres->save("pres-out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Remover Slides Mestres Não Utilizados

Aspose.Slides fornece o método removeUnusedMasterSlides (da classe Compress) para permitir que você exclua slides mestres indesejados e não usados. Este código PHP mostra como remover um slide mestre de uma apresentação PowerPoint:

  $pres = new Presentation("pres.pptx");
  try {
    Compress->removeUnusedMasterSlides($pres);
    $pres->save("pres-out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

O que acontece com os índices dos slides após eu excluir um slide?

Após a exclusão, a collection reindexa: cada slide subsequente desloca-se uma posição para a esquerda, de modo que os números de índice anteriores ficam desatualizados. Se precisar de uma referência estável, use o ID persistente de cada slide em vez de seu índice.

O ID de um slide é diferente do seu índice e ele muda quando slides vizinhos são excluídos?

Sim. O índice é a posição do slide e mudará quando slides forem adicionados ou removidos. O ID do slide é um identificador persistente e não muda quando outros slides são excluídos.

Como a exclusão de um slide afeta as seções de slides?

Se o slide pertencia a uma seção, essa seção simplesmente conterá um slide a menos. A estrutura da seção permanece; se uma seção ficar vazia, você pode remover ou reorganizar seções conforme necessário.

O que acontece com as notas e comentários anexados a um slide quando ele é excluído?

Notes e comments estão vinculados a esse slide específico e são removidos junto com ele. O conteúdo de outros slides não é afetado.

Como a exclusão de slides difere da limpeza de layouts/mestres não utilizados?

A exclusão remove slides normais específicos do conjunto. A limpeza de layouts/mestres não utilizados remove slides de layout ou mestres que não são referenciados por nada, reduzindo o tamanho do arquivo sem alterar o conteúdo dos slides restantes. Essas ações são complementares: normalmente exclui-se primeiro, depois faz-se a limpeza.