Animar texto do PowerPoint em Python via Java

Visão geral

Este artigo explica como trabalhar com texto animado no Aspose.Slides aplicando efeitos de animação a parágrafos individuais e recuperando os efeitos já atribuídos a parágrafos em uma moldura de texto. Ele se concentra nos métodos da API usados para adicionar animação ao nível de parágrafo e inspecionar efeitos de animação de parágrafo existentes em uma apresentação.

Adicionar efeitos de animação a parágrafos

O método addEffect da classe Sequence permite adicionar efeitos de animação a um único parágrafo. Este código de exemplo mostra como adicionar um efeito de animação a um único parágrafo:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat

presentation = Presentation("Presentation.pptx")
try:
    # Selecione o parágrafo para adicionar um efeito.
    auto_shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
    paragraph = auto_shape.getTextFrame().getParagraphs().get_Item(0)

    # Adicione um efeito de animação Fly ao parágrafo selecionado.
    effect = presentation.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(paragraph, EffectType.Fly, EffectSubtype.Left, EffectTriggerType.OnClick)

    presentation.save("AnimationEffectinParagraph.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Obter efeitos de animação de parágrafos

Você pode querer recuperar os efeitos de animação aplicados a um parágrafo — por exemplo, para aplicar esses efeitos a outro parágrafo ou forma.

Aspose.Slides for Python via Java permite obter todos os efeitos de animação aplicados a parágrafos contidos em uma moldura de texto (forma). Este código de exemplo mostra como obter os efeitos de animação aplicados a um parágrafo:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation

presentation = Presentation("Presentation.pptx")
try:
    sequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence()
    auto_shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)

    for paragraph in auto_shape.getTextFrame().getParagraphs():
        effects = sequence.getEffectsByParagraph(paragraph)

        if len(effects) > 0:
            print(f'Paragraph "{paragraph.getText()}" has {effects[0].getType()} effect.')
finally:
    presentation.dispose()

FAQ

Como as animações de texto diferem das transições de slide e podem ser combinadas?

As animações de texto controlam o comportamento de objetos ao longo do tempo em um slide, enquanto transitions controlam como os slides mudam. Elas são independentes e podem ser usadas juntas; a ordem de reprodução é governada pela linha do tempo da animação e pelas configurações de transição.

As animações de texto são preservadas ao exportar para PDF ou imagens?

Não. PDFs e imagens raster são estáticos, portanto você verá um único estado do slide sem movimento. Para manter o movimento, use exportação para video ou HTML.

As animações de texto funcionam em layouts e no mestre de slides?

Os efeitos aplicados a objetos de layout/mestre são herdados pelos slides, mas seu tempo e interação com animações a nível de slide dependem da sequência final no slide.