Acessar slides de apresentação em PHP

Visão geral

Este artigo explica como acessar e gerenciar slides em uma apresentação usando Aspose.Slides. Ele mostra como recuperar slides pelo índice baseado em zero da coleção de slides e como acessar um slide pelo seu ID exclusivo usando o método getSlideById.

Você também aprenderá como alterar a posição de um slide usando o método setSlideNumber e como definir o número inicial do slide para uma apresentação com o método setFirstSlideNumber. Os exemplos demonstram como carregar uma apresentação, obter referências de slides, atualizar a ordem ou numeração dos slides e salvar a apresentação modificada.

Acessar um slide por índice

Todos os slides em uma apresentação são organizados numericamente com base na posição do slide, começando em 0. O primeiro slide é acessível através do índice 0; o segundo slide é acessado através do índice 1; etc.

A classe Presentation, que representa um arquivo de apresentação, expõe todos os slides como uma coleção SlideCollection (coleção de objetos Slide). Este código PHP mostra como acessar um slide pelo seu índice:

  # Instancia um objeto Presentation que representa um arquivo de apresentação
  $pres = new Presentation("demo.pptx");
  try {
    # Acessa um slide usando seu índice de slide
    $slide = $pres->getSlides()->get_Item(0);
  } finally {
    $pres->dispose();
  }

Acessar um slide por ID

Cada slide em uma apresentação tem um ID exclusivo associado a ele. Você pode usar o método getSlideById (exposto pela classe Presentation) para localizar esse ID. Este código PHP mostra como fornecer um ID de slide válido e acessar esse slide através do método getSlideById:

  # Instancia um objeto Presentation que representa um arquivo de apresentação
  $pres = new Presentation("demo.pptx");
  try {
    # Obtém o ID de um slide
    $id = $pres->getSlides()->get_Item(0)->getSlideId();
    # Acessa o slide através do seu ID
    $slide = $pres->getSlideById($id);
  } finally {
    $pres->dispose();
  }

Alterar a posição do slide

Aspose.Slides permite que você altere a posição de um slide. Por exemplo, você pode especificar que o primeiro slide deve se tornar o segundo slide.

  1. Crie uma instância da classe Presentation.
  2. Obtenha a referência do slide (cuja posição você deseja alterar) através do seu índice.
  3. Defina uma nova posição para o slide usando o método setSlideNumber.
  4. Salve a apresentação modificada.

Este código PHP demonstra uma operação em que o slide na posição 1 é movido para a posição 2:

  # Instancia um objeto Presentation que representa um arquivo de apresentação
  $pres = new Presentation("Presentation.pptx");
  try {
    # Obtém o slide cuja posição será alterada
    $sld = $pres->getSlides()->get_Item(0);
    # Define a nova posição para o slide
    $sld->setSlideNumber(2);
    # Salva a apresentação modificada
    $pres->save("helloworld_Pos.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

O primeiro slide tornou‑se o segundo; o segundo slide tornou‑se o primeiro. Ao alterar a posição de um slide, os demais slides são ajustados automaticamente.

Definir o número do slide

Usando o método setFirstSlideNumber (exposto pela classe Presentation), você pode especificar um novo número para o primeiro slide de uma apresentação. Essa operação faz com que os demais números de slide sejam recalculados.

  1. Crie uma instância da classe Presentation.
  2. Obtenha o número do slide.
  3. Defina o número do slide.
  4. Salve a apresentação modificada.

Este código PHP demonstra uma operação onde o número do primeiro slide é definido como 10:

  # Instancia um objeto Presentation que representa um arquivo de apresentação
  $pres = new Presentation("HelloWorld.pptx");
  try {
    # Obtém o número do slide
    $firstSlideNumber = $pres->getFirstSlideNumber();
    # Define o número do slide
    $pres->setFirstSlideNumber(10);
    # Salva a apresentação modificada
    $pres->save("Set_Slide_Number_out.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

Se preferir pular o primeiro slide, você pode iniciar a numeração a partir do segundo slide (e ocultar a numeração do primeiro slide) da seguinte forma:

  $presentation = new Presentation();
  try {
    $layoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
    $presentation->getSlides()->addEmptySlide($layoutSlide);
    $presentation->getSlides()->addEmptySlide($layoutSlide);
    $presentation->getSlides()->addEmptySlide($layoutSlide);
    # Define o número para o primeiro slide da apresentação
    $presentation->setFirstSlideNumber(0);
    # Mostra os números de slide para todos os slides
    $presentation->getHeaderFooterManager()->setAllSlideNumbersVisibility(true);
    # Oculta o número do slide para o primeiro slide
    $presentation->getSlides()->get_Item(0)->getHeaderFooterManager()->setSlideNumberVisibility(false);
    # Salva a apresentação modificada
    $presentation->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($presentation)) {
      $presentation->dispose();
    }
  }

Perguntas frequentes

O número do slide que o usuário vê corresponde ao índice baseado em zero da coleção?

O número exibido em um slide pode começar a partir de um valor arbitrário (por exemplo, 10) e não precisa corresponder ao índice; a relação é controlada pela configuração primeiro número de slide da apresentação.

Slides ocultos afetam a indexação?

Sim. Um slide oculto permanece na coleção e é contado na indexação; “oculto” refere‑se à exibição, não à sua posição na coleção.

O índice de um slide muda quando outros slides são adicionados ou removidos?

Sim. Os índices sempre refletem a ordem atual dos slides e são recalculados após inserções, exclusões e movimentações.