Анимация текста PowerPoint в Python через Java
Обзор
В этой статье объясняется, как работать с анимированным текстом в Aspose.Slides, применяя эффекты анимации к отдельным абзацам и получая уже назначенные эффекты для абзацев в текстовом фрейме. Основное внимание уделяется методам API, используемым для добавления анимации на уровне абзаца и проверки существующих эффектов анимации абзацев в презентации.
Добавление эффектов анимации к абзацам
Метод addEffect класса Sequence позволяет добавить эффекты анимации к отдельному абзацу. Ниже приведён пример кода, показывающий, как добавить эффект анимации к одному абзацу:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import EffectSubtype, EffectTriggerType, EffectType, Presentation, SaveFormat
presentation = Presentation("Presentation.pptx")
try:
# Выберите абзац, к которому нужно добавить эффект.
auto_shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
paragraph = auto_shape.getTextFrame().getParagraphs().get_Item(0)
# Добавьте эффект анимации «Полёт» к выбранному абзацу.
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()
Получение эффектов анимации абзацев
Возможно, вам понадобится получить эффекты анимации, применённые к абзацу, — например, чтобы применить эти эффекты к другому абзацу или фигуре.
Aspose.Slides for Python via Java позволяет получить все эффекты анимации, применённые к абзацам, содержащимся в текстовом фрейме (shape). Ниже показан пример кода, демонстрирующий, как получить эффекты анимации, применённые к абзацу:
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
Как анимация текста отличается от переходов слайдов и можно ли их комбинировать?
Анимация текста управляет поведением объекта во времени на слайде, тогда как transitions управляют тем, как меняются слайды. Они независимы и могут использоваться совместно; порядок воспроизведения определяется временной шкалой анимации и настройками перехода.
Сохраняются ли анимации текста при экспорте в PDF или изображения?
Нет. PDF и растровые изображения являются статичными, поэтому вы увидите единственное состояние слайда без движения. Чтобы сохранить движение, используйте экспорт в video или HTML.
Работают ли анимации текста в макетах и мастере слайдов?
Эффекты, применённые к объектам макета/мастера, наследуются слайдами, но их время и взаимодействие с анимациями уровня слайда зависят от окончательной последовательности на слайде.