Criar e aplicar efeitos WordArt no Android
Visão geral
Os efeitos WordArt permitem que você adicione texto visualmente atraente e estilizado às suas apresentações PowerPoint. Com Aspose.Slides, os desenvolvedores podem criar, personalizar e gerenciar WordArt programaticamente, como no Microsoft PowerPoint — sem precisar ter o Office instalado. Este artigo fornece uma visão geral sobre o uso de 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.
Criar um modelo simples de WordArt e aplicá‑lo ao texto
Usando Aspose.Slides
Primeiro, criamos um texto simples usando este código Java:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
ITextFrame textFrame = autoShape.getTextFrame();
Portion portion = (Portion)textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0);
portion.setText("Aspose.Slides");
} finally {
if (pres != null) pres.dispose();
}
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 fontData = new FontData("Arial Black");
portion.getPortionFormat().setLatinFont(fontData);
portion.getPortionFormat().setFontHeight(36);
Usando o Microsoft PowerPoint
Acesse o menu de efeitos WordArt no Microsoft PowerPoint:

No menu à direita, você pode escolher um efeito WordArt predefinido. No menu à esquerda, pode especificar as configurações para um novo WordArt.
Estes são alguns dos parâmetros ou opções disponíveis:

Usando Aspose.Slides
Aqui, aplicamos a cor de padrão SmallGrid ao texto e adicionamos um contorno preto de largura 1 usando este código:
portion.getPortionFormat().getFillFormat().setFillType(FillType.Pattern);
portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(Color.ORANGE);
portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(Color.WHITE);
portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(PatternStyle.SmallGrid);
portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
O texto resultante:

Aplicar outros efeitos de WordArt
Usando o Microsoft PowerPoint
A partir da interface do programa, você pode aplicar esses efeitos a um texto, bloco de texto, forma ou elemento semelhante:

Por exemplo, efeitos de Sombra, Reflexo e Brilho podem ser aplicados a um texto; efeitos de Formato 3D e Rotação 3D podem ser aplicados a um bloco de texto; a propriedade Borda Suave pode ser aplicada a um Objeto Shape (ela ainda tem efeito quando nenhuma propriedade Formato 3D está definida).
Aplicar efeitos de sombra
Aqui, pretendemos definir propriedades relacionadas apenas a um texto. Aplicamos o efeito de sombra a um texto usando este código em Java:
portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect();
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(Color.BLACK);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleHorizontal(100);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleVertical(65);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setBlurRadius(4.73);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDirection(230);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDistance(2);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewHorizontal(30);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewVertical(0);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().getColorTransform().add(ColorTransformOperation.SetAlpha, 0.32f);
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 o Microsoft PowerPoint
No PowerPoint, você pode usar um tipo de sombra. Aqui está um exemplo:

Usando Aspose.Slides
O Aspose.Slides realmente permite aplicar dois tipos de sombras ao mesmo tempo: InnerShadow e PresetShadow.
Notas:
- 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.
Aplicar efeitos de reflexo ao texto
Adicionamos exibição ao texto por meio deste exemplo de código em Java:
portion.getPortionFormat().getEffectFormat().enableReflectionEffect();
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(RectangleAlignment.BottomLeft);
Aplicar efeitos de brilho ao texto
Aplicamos o efeito de brilho ao texto para que ele se destaque usando este código:
portion.getPortionFormat().getEffectFormat().enableGlowEffect();
portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR((byte)255);
portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(ColorTransformOperation.SetAlpha, 0.54f);
portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7);
O resultado da operação:

Usar transformações no WordArt
Usamos a propriedade Transform (inata a todo o bloco de texto) através deste código:
textFrame.getTextFrameFormat().setTransform(TextShapeType.ArchUpPour);
O resultado:

Usando o PowerPoint
Para acessar os tipos de transformação predefinidos, navegue em: Format -> TextEffect -> Transform
Usando Aspose.Slides
Para selecionar um tipo de transformação, use o enum TextShapeType.
Aplicar efeitos 3D ao texto e formas
Definimos um efeito 3D a uma forma de texto usando este código de exemplo:
autoShape.getThreeDFormat().getBevelBottom().setBevelType(BevelPresetType.Circle);
autoShape.getThreeDFormat().getBevelBottom().setHeight(10.5);
autoShape.getThreeDFormat().getBevelBottom().setWidth(10.5);
autoShape.getThreeDFormat().getBevelTop().setBevelType(BevelPresetType.Circle);
autoShape.getThreeDFormat().getBevelTop().setHeight(12.5);
autoShape.getThreeDFormat().getBevelTop().setWidth(11);
autoShape.getThreeDFormat().getExtrusionColor().setColor(Color.ORANGE);
autoShape.getThreeDFormat().setExtrusionHeight(6);
autoShape.getThreeDFormat().getContourColor().setColor(Color.RED);
autoShape.getThreeDFormat().setContourWidth(1.5);
autoShape.getThreeDFormat().setDepth(3);
autoShape.getThreeDFormat().setMaterial(MaterialPresetType.Plastic);
autoShape.getThreeDFormat().getLightRig().setDirection(LightingDirection.Top);
autoShape.getThreeDFormat().getLightRig().setLightType(LightRigPresetType.Balanced);
autoShape.getThreeDFormat().getLightRig().setRotation(0, 0, 40);
autoShape.getThreeDFormat().getCamera().setCameraType(CameraPresetType.PerspectiveContrastingRightFacing);
O texto e a forma resultantes:

Aplicamos um efeito 3D ao texto com este código Java:
textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setBevelType(BevelPresetType.Circle);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setHeight(3.5);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setWidth(3.5);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setBevelType(BevelPresetType.Circle);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setHeight(4);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setWidth(4);
textFrame.getTextFrameFormat().getThreeDFormat().getExtrusionColor().setColor(Color.ORANGE);
textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6);
textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(Color.RED);
textFrame.getTextFrameFormat().getThreeDFormat().setContourWidth(1.5);
textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3);
textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(MaterialPresetType.Plastic);
textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(LightingDirection.Top);
textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(LightRigPresetType.Balanced);
textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40);
textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(CameraPresetType.PerspectiveContrastingRightFacing);
O resultado da operação:

A aplicação de efeitos 3D a textos ou suas formas e as interações entre os efeitos são baseadas em certas regras.
Considere uma cena para um texto e a forma que contém esse texto. O efeito 3D contém a representação do objeto 3D e a cena na qual o objeto foi colocado.
- Quando a cena está definida tanto para a figura quanto para o texto, a cena da figura tem prioridade mais alta — a cena do texto é ignorada.
- Quando a figura não possui sua própria cena, mas tem representação 3D, a cena do texto é usada.
- Caso contrário — quando a forma originalmente não tem efeito 3D — a forma é plana e o efeito 3D é aplicado apenas ao texto.
Essas descrições estão relacionadas aos métodos ThreeDFormat.getLightRig() e ThreeDFormat.getCamera().
Aplicar efeitos de sombra externa ao texto
Aspose.Slides para Android via Java fornece as classes IOuterShadow e IInnerShadow que permitem aplicar efeitos de sombra a um texto contido em um TextFrame. Siga estas etapas:
- Crie uma instância da classe Presentation.
- Obtenha a referência de um slide usando seu índice.
- Adicione um AutoShape do tipo Rectangle ao slide.
- Acesse o TextFrame associado ao AutoShape.
- Defina a propriedade FillType do AutoShape como NoFill.
- Instancie a classe OuterShadow.
- Defina o BlurRadius da sombra.
- Defina a Direction da sombra.
- Defina a Distance da sombra.
- Defina a RectanglelAlign como TopLeft.
- Defina a PresetColor da sombra como Black.
- Salve a apresentação como um arquivo PPTX .
Este código de exemplo em Java — uma implementação das etapas acima — mostra como aplicar o efeito de sombra externa a um texto:
Presentation pres = new Presentation();
try {
// Obter referência do slide
ISlide sld = pres.getSlides().get_Item(0);
// Adicionar um AutoShape do tipo Retângulo
IAutoShape ashp = sld.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);
// Adicionar TextFrame ao Retângulo
ashp.addTextFrame("Aspose TextBox");
// Desativar preenchimento da forma caso queiramos obter sombra do texto
ashp.getFillFormat().setFillType(FillType.NoFill);
// Adicionar sombra externa e definir todos os parâmetros necessários
ashp.getEffectFormat().enableOuterShadowEffect();
IOuterShadow shadow = ashp.getEffectFormat().getOuterShadowEffect();
shadow.setBlurRadius(4.0);
shadow.setDirection(45);
shadow.setDistance(3);
shadow.setRectangleAlign(RectangleAlignment.TopLeft);
shadow.getShadowColor().setPresetColor(PresetColor.Black);
//Gravar a apresentação no disco
pres.save("pres_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Aplicar efeitos de sombra interna a formas
Siga estas etapas:
- Crie uma instância da classe Presentation.
- Obtenha uma referência do slide.
- Adicione um AutoShape do tipo Rectangle.
- Habilite InnerShadowEffect.
- Defina todos os parâmetros necessários.
- Defina ColorType como Scheme.
- Defina a Scheme Color.
- Salve a apresentação como um arquivo PPTX .
Este código de exemplo (com base nas etapas acima) mostra como adicionar um conector entre duas formas em Java:
Presentation pres = new Presentation();
try {
// Obter referência do slide
ISlide slide = pres.getSlides().get_Item(0);
// Adicionar um AutoShape do tipo Retângulo
IAutoShape ashp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 400, 300);
ashp.getFillFormat().setFillType(FillType.NoFill);
// Adicionar TextFrame ao Retângulo
ashp.addTextFrame("Aspose TextBox");
IPortion port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
IPortionFormat pf = port.getPortionFormat();
pf.setFontHeight(50);
// Habilitar InnerShadowEffect
IEffectFormat ef = pf.getEffectFormat();
ef.enableInnerShadowEffect();
// Definir todos os parâmetros necessários
ef.getInnerShadowEffect().setBlurRadius(8.0);
ef.getInnerShadowEffect().setDirection(90.0F);
ef.getInnerShadowEffect().setDistance(6.0);
ef.getInnerShadowEffect().getShadowColor().setB((byte)189);
// Definir ColorType como Scheme
ef.getInnerShadowEffect().getShadowColor().setColorType(ColorType.Scheme);
// Definir cor do esquema
ef.getInnerShadowEffect().getShadowColor().setSchemeColor(SchemeColor.Accent1);
// Salvar apresentação
pres.save("WordArt_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Posso usar efeitos WordArt com diferentes fontes ou scripts (por exemplo, árabe, chinês)?
Sim, o Aspose.Slides tem suporte a Unicode e funciona com todas as principais fontes e scripts. Efeitos 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 instaladas no sistema.
Posso aplicar efeitos WordArt a elementos do slide mestre?
Sim, você pode aplicar efeitos WordArt a formas em slides mestres, 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 WordArt afetam o tamanho do arquivo da apresentação?
Um pouco. Efeitos WordArt como sombras, brilhos e preenchimentos em gradiente podem aumentar ligeiramente o tamanho do arquivo devido ao aumento nos metadados de formatação, mas a diferença costuma ser insignificante.
Posso visualizar o resultado dos efeitos WordArt sem salvar a apresentação?
Sim, você pode renderizar slides que contêm WordArt em imagens (por exemplo, PNG, JPEG) usando o método getImage das interfaces IShape ou ISlide. Isso permite pré‑visualizar o resultado na memória ou na tela antes de salvar ou exportar a apresentação completa.