Animovat text PowerPointu v Pythonu via Java

Přehled

Tento článek vysvětluje, jak pracovat s animovaným textem v Aspose.Slides aplikací animačních efektů na jednotlivé odstavce a získáním efektů již přiřazených odstavcům v textovém rámečku. Zaměřuje se na API metody používané k přidání animace na úrovni odstavce a k prohlédnutí existujících animačních efektů odstavců v prezentaci.

Přidání animačních efektů k odstavcům

Metoda addEffect třídy Sequence umožňuje přidat animační efekt k jednomu odstavci. Tento ukázkový kód ukazuje, jak přidat animační efekt k jednomu odstavci:

import jpype
import asposeslides

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

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

presentation = Presentation("Presentation.pptx")
try:
    # Vyberte odstavec, ke kterému chcete přidat efekt.
    auto_shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
    paragraph = auto_shape.getTextFrame().getParagraphs().get_Item(0)

    # Přidejte efekt animace Fly k vybranému odstavci.
    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()

Získání animačních efektů odstavců

Možná budete chtít získat animační efekty aplikované na odstavec – například pro aplikaci těchto efektů na jiný odstavec nebo tvar.

Aspose.Slides for Python via Java umožňuje získat všechny animační efekty aplikované na odstavce obsažené v textovém rámečku (tvaru). Tento ukázkový kód ukazuje, jak získat animační efekty aplikované na odstavec:

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

Jak se liší textové animace od přechodů snímků a lze je kombinovat?

Textové animace řídí chování objektu v čase na snímku, zatímco transitions řídí, jak se mění snímky. Jsou nezávislé a lze je použít společně; pořadí přehrávání určuje časová osa animace a nastavení přechodu.

Zůstávají textové animace zachovány při exportu do PDF nebo obrázků?

Ne. PDF a rastrové obrázky jsou statické, takže uvidíte jediný stav snímku bez pohybu. Pro zachování pohybu použijte export do video nebo HTML.

Fungují textové animace v rozvrženích a v hlavním snímku?

Efekty aplikované na objekty rozvržení/masteru jsou děděny snímky, ale jejich načasování a interakce s animacemi na úrovni snímku závisí na konečné sekvenci na snímku.