Gerenciar transições de slide em apresentações no .NET

Visão geral

Este artigo explica como gerenciar transições de slides em apresentações usando Aspose.Slides. Ele mostra como aplicar tipos de transição aos slides, configurar o comportamento da transição, como avançar ao clicar ou após um tempo especificado, verificar e desativar o avanço automático, usar a transição Morph e seus tipos e definir opções de efeito de transição. Os exemplos demonstram como carregar ou criar uma apresentação, modificar as configurações de transição para slides selecionados e salvar o resultado como um arquivo PPTX. O artigo também responde a perguntas comuns sobre velocidade da transição, sons de transição, aplicação da mesma transição a vários slides e verificação da transição atualmente definida em um slide.

Adicionar transição de slide

Para facilitar a compreensão, demonstramos o uso do Aspose.Slides for .NET para gerenciar transições de slide simples. Os desenvolvedores podem não apenas aplicar diferentes efeitos de transição de slide nos slides, mas também personalizar o comportamento desses efeitos de transição. Para criar um efeito de transição de slide simples, siga os passos abaixo:

  1. Crie uma instância da classe Presentation.
  2. Aplique um Tipo de Transição de Slide no slide a partir de um dos efeitos de transição oferecidos pelo Aspose.Slides for .NET por meio do enum TransitionType.
  3. Grave o arquivo de apresentação modificado.
 // Instanciar a classe Presentation para carregar o arquivo de apresentação de origem
 using (Presentation presentation = new Presentation("AccessSlides.pptx"))
 {
     // Aplicar transição do tipo círculo no slide 1
     presentation.Slides[0].SlideShowTransition.Type = TransitionType.Circle;

     // Aplicar transição do tipo pente no slide 2
     presentation.Slides[1].SlideShowTransition.Type = TransitionType.Comb;

     // Gravar a apresentação no disco
     presentation.Save("SampleTransition_out.pptx", SaveFormat.Pptx);
 }

Adicionar transição de slide avançada

Na seção anterior, aplicamos apenas um efeito de transição simples no slide. Agora, para tornar esse efeito de transição simples ainda melhor e controlado, siga os passos abaixo:

  1. Crie uma instância da classe Presentation.
  2. Aplique um Tipo de Transição de Slide no slide a partir de um dos efeitos de transição oferecidos pelo Aspose.Slides for .NET.
  3. Você também pode definir a transição para Avançar ao Clicar, após um período de tempo específico ou ambos.
  4. Se a transição de slide estiver habilitada para Avançar ao Clicar, a transição avançará somente quando alguém clicar com o mouse. Além disso, se a propriedade Advance After Time estiver definida, a transição avançará automaticamente após o tempo especificado.
  5. Grave a apresentação modificada como um arquivo de apresentação.
// Instanciar a classe Presentation que representa um arquivo de apresentação
using (Presentation pres = new Presentation("BetterSlideTransitions.pptx"))
{

    // Aplicar transição do tipo círculo no slide 1
    pres.Slides[0].SlideShowTransition.Type = TransitionType.Circle;


    // Definir o tempo de transição de 3 segundos
    pres.Slides[0].SlideShowTransition.AdvanceOnClick = true;
    pres.Slides[0].SlideShowTransition.AdvanceAfterTime = 3000;

    // Aplicar transição do tipo pente no slide 2
    pres.Slides[1].SlideShowTransition.Type = TransitionType.Comb;


    // Definir o tempo de transição de 5 segundos
    pres.Slides[1].SlideShowTransition.AdvanceOnClick = true;
    pres.Slides[1].SlideShowTransition.AdvanceAfterTime = 5000;

    // Aplicar transição do tipo zoom no slide 3
    pres.Slides[2].SlideShowTransition.Type = TransitionType.Zoom;


    // Definir o tempo de transição de 7 segundos
    pres.Slides[2].SlideShowTransition.AdvanceOnClick = true;
    pres.Slides[2].SlideShowTransition.AdvanceAfterTime = 7000;

    // Gravar a apresentação no disco
    pres.Save("SampleTransition_out.pptx", SaveFormat.Pptx);
}

Além disso, usando a propriedade AdvanceAfter, você pode verificar se uma transição de slide foi configurada para avançar para o próximo slide ou desativar a configuração.

Este código C# demonstra a operação:

 // Instancia uma classe Presentation que representa um arquivo de apresentação
 using (Presentation pres = new Presentation("SampleTransition_out.pptx"))
 {
     foreach (ISlide slide in pres.Slides)
     {
         // Obtém a transição do slide
         ISlideShowTransition slideTransition = slide.SlideShowTransition;

         // Verifica se a configuração Avançar após o tempo está habilitada
         if (slideTransition.AdvanceAfter)
         {
             // Imprime o valor de Avançar após o tempo
             Console.WriteLine("The slide #" + slide.SlideNumber + " AdvancedAfterTime: " + slideTransition.AdvanceAfterTime);
         }

         // Desativa a transição após um tempo específico se o valor AdvancedAfterTime for maior que 2 segundos
         if (slideTransition.AdvanceAfterTime > 2000)
         {
             slideTransition.AdvanceAfter = false;
         }
     }
 }

Transição Morph

Aspose.Slides for .NET agora oferece suporte à Morph Transition. Elas representam uma nova transição morph introduzida no PowerPoint 2019. A transição Morph permite animar o movimento suave de um slide para o próximo. Este artigo descreve o conceito e como usar a transição Morph. Para usar a transição Morph de forma eficaz, você precisará de dois slides com pelo menos um objeto em comum. A maneira mais fácil é duplicar o slide e, em seguida, mover o objeto no segundo slide para outro local.

O trecho de código a seguir mostra como adicionar um clone do slide com algum texto à apresentação e definir uma transição de tipo morph para o segundo slide.

using (Presentation presentation = new Presentation())
{
    AutoShape autoshape = (AutoShape)presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 400, 100);
    autoshape.TextFrame.Text = "Morph Transition in PowerPoint Presentations";

    presentation.Slides.AddClone(presentation.Slides[0]);

    presentation.Slides[1].Shapes[0].X += 100;
    presentation.Slides[1].Shapes[0].Y += 50;
    presentation.Slides[1].Shapes[0].Width -= 200;
    presentation.Slides[1].Shapes[0].Height -= 10;

    presentation.Slides[1].SlideShowTransition.Type = Aspose.Slides.SlideShow.TransitionType.Morph;

    presentation.Save("presentation-out.pptx", SaveFormat.Pptx);
}

Tipos de transição Morph

Foi adicionado o novo enum Aspose.Slides.SlideShow.TransitionMorphType. Ele representa diferentes tipos de transição de slide Morph.

O enum TransitionMorphType possui três membros:

  • ByObject: a transição Morph será realizada considerando as formas como objetos indivisíveis.
  • ByWord: a transição Morph será realizada transferindo o texto por palavras, quando possível.
  • ByChar: a transição Morph será realizada transferindo o texto por caracteres, quando possível.

O trecho de código a seguir mostra como definir a transição morph para um slide e alterar o tipo morph:

using (Presentation presentation = new Presentation("presentation.pptx"))
{
    presentation.Slides[0].SlideShowTransition.Type = TransitionType.Morph;
    ((IMorphTransition)presentation.Slides[0].SlideShowTransition.Value).MorphType = TransitionMorphType.ByWord;
    presentation.Save("presentation-out.pptx", SaveFormat.Pptx);
}

Definir efeitos de transição

Aspose.Slides for .NET oferece suporte à definição de efeitos de transição, como de preto, da esquerda, da direita etc. Para definir o Efeito de Transição, siga os passos abaixo:

  • Crie uma instância da classe Presentation.
  • Obtenha a referência do slide.
  • Defina o efeito de transição.
  • Grave a apresentação como um arquivo PPTX.

No exemplo abaixo, definimos os efeitos de transição.

// Criar uma instância da classe Presentation
Presentation presentation = new Presentation("AccessSlides.pptx");

// Definir efeito
presentation.Slides[0].SlideShowTransition.Type = TransitionType.Cut;
((OptionalBlackTransition)presentation.Slides[0].SlideShowTransition.Value).FromBlack = true;

// Gravar a apresentação no disco
presentation.Save("SetTransitionEffects_out.pptx", SaveFormat.Pptx);

Perguntas frequentes

Posso controlar a velocidade de reprodução de uma transição de slide?

Sim. Defina a Speed da transição usando a configuração TransitionSpeed (por exemplo, slow/medium/fast).

Posso anexar áudio a uma transição e fazer loop?

Sim. Você pode incorporar um som à transição e controlar o comportamento por meio de configurações como modo de som e repetição (por exemplo, Sound, SoundMode, SoundLoop, além de metadados como SoundIsBuiltIn e SoundName).

Qual a maneira mais rápida de aplicar a mesma transição a todos os slides?

Configure o tipo de transição desejado nas configurações de transição de cada slide; as transições são armazenadas por slide, portanto aplicar o mesmo tipo a todos os slides produz um resultado consistente.

Como posso verificar qual transição está atualmente definida em um slide?

Inspecione as configurações de transição do slide e leia seu tipo de transição; esse valor indica exatamente qual efeito está aplicado.