Criar e Aplicar Efeitos de WordArt em Python

Visão geral

Os efeitos de WordArt permitem que você adicione texto estilizado e visualmente atraente às suas apresentações PowerPoint. Com Aspose.Slides, os desenvolvedores podem criar, personalizar e gerenciar WordArt programaticamente, assim como no Microsoft PowerPoint—sem precisar ter o Office instalado. Este artigo oferece uma visão geral do trabalho com WordArt, incluindo como aplicar transformações de texto, estilos de preenchimento, contornos, sombras e outras opções de formatação para tornar o conteúdo da sua apresentação mais expressivo e envolvente. WordArt permite tratar o texto como um objeto gráfico. Consiste em efeitos ou modificações especiais aplicadas ao texto para torná‑lo mais atraente ou perceptível.

WordArt no Microsoft PowerPoint

Para usar WordArt no Microsoft PowerPoint, você deve selecionar um dos modelos predefinidos de WordArt. Um modelo de WordArt é um conjunto de efeitos que é aplicado a um texto ou à sua forma.

WordArt no Aspose.Slides

No Aspose.Slides for Python via .NET 20.10, implementamos suporte para WordArt e aprimoramos o recurso em versões subsequentes do Aspose.Slides for Python via .NET.

Com Aspose.Slides for Python via .NET, você pode criar facilmente seu próprio modelo de WordArt (um efeito ou combinação de efeitos) em Python e aplicá‑lo a textos.

Criando um Modelo Simples de WordArt e Aplicando‑o a um Texto

Usando Aspose.Slides

Primeiro, criamos um texto simples usando este código Python:

import aspose.slides as slides

with slides.Presentation() as pres:
    slide = pres.slides[0]
    autoShape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 200, 400, 200)
    textFrame = autoShape.text_frame

    portion = textFrame.paragraphs[0].portions[0]
    portion.text = "Aspose.Slides"

    pres.save("wordart-1.pptx", slides.export.SaveFormat.PPTX)

Agora, definimos a altura da fonte do texto para um valor maior para que o efeito fique mais perceptível por meio deste código:

    fontData = slides.FontData("Arial Black")
    portion.portion_format.latin_font = fontData
    portion.portion_format.font_height = 36

Usando Microsoft PowerPoint

Vá ao menu de efeitos de WordArt no Microsoft PowerPoint:

todo:image_alt_text

No menu à direita, você pode escolher um efeito predefinido de WordArt. No menu à esquerda, pode especificar as configurações para um novo WordArt.

Estes são alguns dos parâmetros ou opções disponíveis:

todo:image_alt_text

Usando Aspose.Slides

Aqui, aplicamos a cor de padrão SmallGrid ao texto e adicionamos uma borda de texto preta com largura 1 usando este código:

    portion.portion_format.fill_format.fill_type = slides.FillType.PATTERN
    portion.portion_format.fill_format.pattern_format.fore_color.color = draw.Color.dark_orange
    portion.portion_format.fill_format.pattern_format.back_color.color = draw.Color.white
    portion.portion_format.fill_format.pattern_format.pattern_style = slides.PatternStyle.SMALL_GRID
                
    portion.portion_format.line_format.fill_format.fill_type = slides.FillType.SOLID
    portion.portion_format.line_format.fill_format.solid_fill_color.color = draw.Color.black

O texto resultante:

todo:image_alt_text

Aplicando Outros Efeitos de WordArt

Usando Microsoft PowerPoint

Pela interface do programa, você pode aplicar esses efeitos a um texto, bloco de texto, forma ou elemento semelhante:

todo:image_alt_text

Por exemplo, os efeitos Sombra, Reflexão e Brilho podem ser aplicados a um texto; os efeitos Formato 3D e Rotação 3D podem ser aplicados a um bloco de texto; a propriedade Bordas Suaves pode ser aplicada a um Objeto Forma (ela ainda tem efeito quando nenhuma propriedade Formato 3D está definida).

Aplicando Efeitos de Sombra

Aqui, pretendemos definir propriedades relacionadas apenas ao texto. Aplicamos o efeito de sombra a um texto usando este código em Python:

    portion.portion_format.effect_format.enable_outer_shadow_effect()
    portion.portion_format.effect_format.outer_shadow_effect.shadow_color.color = draw.Color.black
    portion.portion_format.effect_format.outer_shadow_effect.scale_horizontal = 100
    portion.portion_format.effect_format.outer_shadow_effect.scale_vertical = 65
    portion.portion_format.effect_format.outer_shadow_effect.blur_radius = 4.73
    portion.portion_format.effect_format.outer_shadow_effect.direction = 230
    portion.portion_format.effect_format.outer_shadow_effect.distance = 2
    portion.portion_format.effect_format.outer_shadow_effect.skew_horizontal = 30
    portion.portion_format.effect_format.outer_shadow_effect.skew_vertical = 0
    portion.portion_format.effect_format.outer_shadow_effect.shadow_color.color_transform.add(slides.ColorTransformOperation.SET_ALPHA, 0.32)

A API Aspose.Slides oferece três tipos de sombras: OuterShadow, InnerShadow e PresetShadow.

Com PresetShadow, você pode aplicar uma sombra a um texto (usando valores predefinidos).

Usando Microsoft PowerPoint

No PowerPoint, você pode usar um tipo de sombra. Aqui está um exemplo:

todo:image_alt_text

Usando Aspose.Slides

Aspose.Slides realmente permite aplicar dois tipos de sombras ao mesmo tempo: InnerShadow e PresetShadow.

Observações:

  • Quando OuterShadow e PresetShadow são usados juntos, apenas o efeito OuterShadow é aplicado.
  • Se OuterShadow e InnerShadow forem usados simultaneamente, o efeito resultante ou aplicado depende da versão do PowerPoint. Por exemplo, no PowerPoint 2013, o efeito é dobrado. Mas no PowerPoint 2007, o efeito OuterShadow é aplicado.

Aplicando Display a Textos

Adicionamos display ao texto por meio deste exemplo de código em Python:

    portion.portion_format.effect_format.enable_reflection_effect()
    portion.portion_format.effect_format.reflection_effect.blur_radius = 0.5 
    portion.portion_format.effect_format.reflection_effect.distance = 4.72 
    portion.portion_format.effect_format.reflection_effect.start_pos_alpha = 0 
    portion.portion_format.effect_format.reflection_effect.end_pos_alpha = 60
    portion.portion_format.effect_format.reflection_effect.direction = 90 
    portion.portion_format.effect_format.reflection_effect.scale_horizontal = 100 
    portion.portion_format.effect_format.reflection_effect.scale_vertical = -100
    portion.portion_format.effect_format.reflection_effect.start_reflection_opacity = 60
    portion.portion_format.effect_format.reflection_effect.end_reflection_opacity = 0.9
    portion.portion_format.effect_format.reflection_effect.rectangle_align = slides.RectangleAlignment.BOTTOM_LEFT  

Aplicando Efeito de Brilho a Textos

Aplicamos o efeito de brilho ao texto para que ele brilhe ou se destaque usando este código:

    portion.portion_format.effect_format.enable_glow_effect()
    portion.portion_format.effect_format.glow_effect.color.r = 255
    portion.portion_format.effect_format.glow_effect.color.color_transform.add(slides.ColorTransformOperation.SET_ALPHA, 0.54)
    portion.portion_format.effect_format.glow_effect.radius = 7

O resultado da operação:

todo:image_alt_text

Usando Transformações em WordArt

Usamos a propriedade Transform (inata ao bloco inteiro de texto) por meio deste código:

textFrame.text_frame_format.transform = slides.TextShapeType.ARCH_UP_POUR

O resultado:

todo:image_alt_text

Usando PowerPoint

Para acessar os tipos de transformação predefinidos, siga: Format->TextEffect->Transform

Usando Aspose.Slides

Para selecionar um tipo de transformação, use o enum TextShapeType.

Aplicando efeitos 3D a Textos e Formas

Definimos um efeito 3D a uma forma de texto usando este código de exemplo:

    autoShape.three_d_format.bevel_bottom.bevel_type = slides.BevelPresetType.CIRCLE
    autoShape.three_d_format.bevel_bottom.height = 10.5
    autoShape.three_d_format.bevel_bottom.width = 10.5

    autoShape.three_d_format.bevel_top.bevel_type = slides.BevelPresetType.CIRCLE
    autoShape.three_d_format.bevel_top.height = 12.5
    autoShape.three_d_format.bevel_top.width = 11

    autoShape.three_d_format.extrusion_color.color = draw.Color.orange
    autoShape.three_d_format.extrusion_height = 6

    autoShape.three_d_format.contour_color.color = draw.Color.dark_red
    autoShape.three_d_format.contour_width = 1.5

    autoShape.three_d_format.depth = 3

    autoShape.three_d_format.material = slides.MaterialPresetType.PLASTIC

    autoShape.three_d_format.light_rig.direction = slides.LightingDirection.TOP
    autoShape.three_d_format.light_rig.light_type = slides.LightRigPresetType.BALANCED
    autoShape.three_d_format.light_rig.set_rotation(0, 0, 40)

    autoShape.three_d_format.camera.camera_type = slides.CameraPresetType.PERSPECTIVE_CONTRASTING_RIGHT_FACING

O texto resultante e sua forma:

todo:image_alt_text

Aplicamos um efeito 3D ao texto com este código Python:

    textFrame.text_frame_format.three_d_format.bevel_bottom.bevel_type = slides.BevelPresetType.CIRCLE
    textFrame.text_frame_format.three_d_format.bevel_bottom.height = 3.5
    textFrame.text_frame_format.three_d_format.bevel_bottom.width = 3.5

    textFrame.text_frame_format.three_d_format.bevel_top.bevel_type = slides.BevelPresetType.CIRCLE
    textFrame.text_frame_format.three_d_format.bevel_top.height = 4
    textFrame.text_frame_format.three_d_format.bevel_top.width = 4

    textFrame.text_frame_format.three_d_format.extrusion_color.color = draw.Color.orange
    textFrame.text_frame_format.three_d_format.extrusion_height= 6

    textFrame.text_frame_format.three_d_format.contour_color.color = draw.Color.dark_red
    textFrame.text_frame_format.three_d_format.contour_width = 1.5

    textFrame.text_frame_format.three_d_format.depth= 3

    textFrame.text_frame_format.three_d_format.material = slides.MaterialPresetType.PLASTIC

    textFrame.text_frame_format.three_d_format.light_rig.direction = slides.LightingDirection.TOP
    textFrame.text_frame_format.three_d_format.light_rig.light_type = slides.LightRigPresetType.BALANCED
    textFrame.text_frame_format.three_d_format.light_rig.set_rotation(0, 0, 40)

    textFrame.text_frame_format.three_d_format.camera.camera_type = slides.CameraPresetType.PERSPECTIVE_CONTRASTING_RIGHT_FACING

O resultado da operação:

todo:image_alt_text

Aplicar Efeitos de Sombra Externa a Textos

Aspose.Slides for Python via .NET fornece as classes IOuterShadow e IInnerShadow que permitem aplicar efeitos de sombra a um texto contido em TextFrame. Siga estas etapas:

  1. Crie uma instância da classe Presentation.
  2. Obtenha a referência de um slide usando seu índice.
  3. Adicione um AutoShape do tipo Rectangle ao slide.
  4. Acesse o TextFrame associado ao AutoShape.
  5. Defina o FillType do AutoShape como NoFill.
  6. Instancie a classe OuterShadow
  7. Defina o BlurRadius da sombra.
  8. Defina a Direction da sombra
  9. Defina a Distance da sombra.
  10. Defina o RectanglelAlign para TopLeft.
  11. Defina o PresetColor da sombra como Black.
  12. Salve a apresentação como um arquivo PPTX.

Este código de exemplo em Python—uma implementação das etapas acima—mostra como aplicar o efeito de sombra externa a um texto:

import aspose.slides as slides
import aspose.pydrawing as draw

with slides.Presentation() as pres:

    # Obter referência do slide
    sld = pres.slides[0]

    # Adicionar um AutoShape do tipo Retângulo
    ashp = sld.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 150, 50)

    # Adicionar TextFrame ao Retângulo
    ashp.add_text_frame("Aspose TextBox")

    # Desativar preenchimento da forma caso queiramos obter sombra do texto
    ashp.fill_format.fill_type = slides.FillType.NO_FILL

    # Adicionar sombra externa e definir todos os parâmetros necessários
    ashp.effect_format.enable_outer_shadow_effect()
    shadow = ashp.effect_format.outer_shadow_effect
    shadow.blur_radius = 4.0
    shadow.direction = 45
    shadow.distance = 3
    shadow.rectangle_align = slides.RectangleAlignment.TOP_LEFT
    shadow.shadow_color.preset_color = slides.PresetColor.BLACK

    #Gravar a apresentação no disco
    pres.save("pres_out.pptx", slides.export.SaveFormat.PPTX)

Aplicar Efeito de Sombra Interna a Formas

Siga estas etapas:

  1. Crie uma instância da classe Presentation.
  2. Obtenha a referência do slide.
  3. Adicione um AutoShape do tipo Rectangle.
  4. Habilite InnerShadowEffect.
  5. Defina todos os parâmetros necessários.
  6. Defina o ColorType como Scheme.
  7. Defina a Scheme Color.
  8. Salve a apresentação como um arquivo PPTX.

Este código de exemplo (baseado nas etapas acima) mostra como adicionar um conector entre duas formas em Python:

import aspose.slides as slides
import aspose.pydrawing as draw

with slides.Presentation() as presentation:
    # Obter referência de um slide
    slide = presentation.slides[0]

    # Adicionar um AutoShape do tipo Retângulo
    ashp = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 400, 300)
    ashp.fill_format.fill_type = slides.FillType.NO_FILL

    # Adicionar TextFrame ao Retângulo
    ashp.add_text_frame("Aspose TextBox")
    port = ashp.text_frame.paragraphs[0].portions[0]
    pf = port.portion_format
    pf.font_height = 50

    # Habilitar inner_shadow_effect    
    ef = pf.effect_format
    ef.enable_inner_shadow_effect()

    # Definir todos os parâmetros necessários
    ef.inner_shadow_effect.blur_radius = 8.0
    ef.inner_shadow_effect.direction = 90.0
    ef.inner_shadow_effect.distance = 6.0
    ef.inner_shadow_effect.shadow_color.b = 189

    # Definir ColorType como Scheme
    ef.inner_shadow_effect.shadow_color.color_type = slides.ColorType.SCHEME

    # Definir Scheme Color
    ef.inner_shadow_effect.shadow_color.scheme_color = slides.SchemeColor.ACCENT1

    # Salvar a apresentação
    presentation.save("WordArt_out.pptx", slides.export.SaveFormat.PPTX)

Perguntas Frequentes

Posso usar efeitos de WordArt com fontes ou scripts diferentes (por exemplo, árabe, chinês)?

Sim, Aspose.Slides oferece suporte a Unicode e funciona com todas as principais fontes e scripts. Efeitos de WordArt como sombra, preenchimento e contorno podem ser aplicados independentemente do idioma, embora a disponibilidade da fonte e a renderização possam depender das fontes do sistema.

Posso aplicar efeitos de WordArt a elementos do mestre de slides?

Sim, você pode aplicar efeitos de WordArt a formas nos mestres de slides, incluindo marcadores de título, rodapés ou textos de fundo. Alterações feitas no layout mestre serão refletidas em todos os slides associados.

Os efeitos de WordArt afetam o tamanho do arquivo da apresentação?

Um pouco. Efeitos de WordArt como sombras, brilhos e preenchimentos degradê podem aumentar ligeiramente o tamanho do arquivo devido ao metadado de formatação adicional, mas a diferença costuma ser insignificante.

Posso visualizar o resultado dos efeitos de WordArt sem salvar a apresentação?

Sim, você pode renderizar slides contendo WordArt em imagens (por exemplo, PNG, JPEG) usando o método get_image das classes Shape ou Slide. Isso permite pré‑visualizar o resultado na memória ou na tela antes de salvar ou exportar a apresentação completa.