Formatar Formas do PowerPoint em Java
Introdução
No PowerPoint, você pode adicionar formas aos slides. Como as formas são compostas por linhas, você pode formatá‑las modificando ou aplicando efeitos aos seus contornos. Além disso, pode formatar as formas especificando configurações que controlam como os interiores são preenchidos.

Aspose.Slides for Java fornece interfaces e métodos que permitem formatar formas usando as mesmas opções disponíveis no PowerPoint.
Formatar Linhas
Usando Aspose.Slides, você pode especificar um estilo de linha personalizado para uma forma. As etapas a seguir descrevem o procedimento:
- Crie uma instância da Presentation class.
- Obtenha uma referência a um slide pelo seu índice.
- Adicione um IAutoShape ao slide.
- Defina o line style da forma.
- Defina a largura da linha.
- Defina o dash style da linha.
- Defina a cor da linha para a forma.
- Salve a apresentação modificada como um arquivo PPTX.
O código a seguir demonstra como formatar um AutoShape retangular:
import com.aspose.slides.*;
import java.awt.Color;
// Instanciar a classe Presentation que representa um arquivo de apresentação.
Presentation presentation = new Presentation();
try {
// Obter o primeiro slide.
ISlide slide = presentation.getSlides().get_Item(0);
// Adicionar uma autoforma do tipo Retângulo.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 150, 150, 75);
// Definir a cor de preenchimento para a forma retângulo.
shape.getFillFormat().setFillType(FillType.NoFill);
// Aplicar formatação às linhas do retângulo.
shape.getLineFormat().setStyle(LineStyle.ThickThin);
shape.getLineFormat().setWidth(7);
shape.getLineFormat().setDashStyle(LineDashStyle.Dash);
// Definir a cor para a linha do retângulo.
shape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
// Salvar o arquivo PPTX no disco.
presentation.save("formatted_lines.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Aplicar Efeitos de Esboço às Linhas da Forma
Um efeito de esboço faz com que a linha da forma pareça desenhada à mão. Use IShape.getLineFormat para acessar as configurações da linha, ILineFormat.getSketchFormat para acessar as configurações de esboço e ISketchFormat.setSketchType para selecionar um valor da enumeração LineSketchType.
O código Java a seguir mostra como aplicar o efeito LineSketchType.Curved, ler o valor atribuído explicitamente e remover o efeito com LineSketchType.None:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 100);
// Acessar o formato de linha da forma e seu formato de esboço.
ISketchFormat sketchFormat = shape.getLineFormat().getSketchFormat();
// Aplicar um efeito de esboço.
sketchFormat.setSketchType(LineSketchType.Curved);
// Ler o efeito de esboço atribuído diretamente à forma.
int explicitSketchType = sketchFormat.getSketchType();
System.out.println("Explicit sketch type: " + explicitSketchType);
// Remover o efeito de esboço.
sketchFormat.setSketchType(LineSketchType.None);
} finally {
presentation.dispose();
}
O valor devolvido por ISketchFormat.getSketchType representa a configuração atribuída diretamente à forma. Se a formatação da linha puder ser herdada de um tema, slide mestre ou slide de layout, use ILineFormat.getEffective, acesse ILineFormatEffectiveData.getSketchFormat e leia ISketchFormatEffectiveData.getSketchType. O valor efetivo reflete a formatação realmente aplicada após a resolução da herança:
Presentation presentation = new Presentation("presentation.pptx");
try {
IShape shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
ILineFormat lineFormat = shape.getLineFormat();
int explicitSketchType = lineFormat.getSketchFormat().getSketchType();
ILineFormatEffectiveData effectiveLineFormat = lineFormat.getEffective();
int effectiveSketchType = effectiveLineFormat.getSketchFormat().getSketchType();
System.out.println("Explicit sketch type: " + explicitSketchType);
System.out.println("Effective sketch type: " + effectiveSketchType);
} finally {
presentation.dispose();
}
Formatar Estilos de Junção
Aqui estão as três opções de tipo de junção:
- Round
- Miter
- Bevel
Por padrão, quando o PowerPoint une duas linhas em um ângulo (como no canto de uma forma), ele usa a configuração Round. Contudo, se você estiver desenhando uma forma com ângulos agudos, pode preferir a opção Miter.

O código Java a seguir demonstra como três retângulos (conforme a imagem acima) foram criados usando as configurações de tipo de junção Miter, Bevel e Round:
import com.aspose.slides.*;
import java.awt.Color;
// Instanciar a classe Presentation que representa um arquivo de apresentação.
Presentation presentation = new Presentation();
try {
// Obter o primeiro slide.
ISlide slide = presentation.getSlides().get_Item(0);
// Adicionar três autoformas do tipo Retângulo.
IAutoShape shape1 = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 150, 75);
IAutoShape shape2 = slide.getShapes().addAutoShape(ShapeType.Rectangle, 210, 20, 150, 75);
IAutoShape shape3 = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 135, 150, 75);
// Definir a cor de preenchimento para cada forma retângulo.
shape1.getFillFormat().setFillType(FillType.Solid);
shape1.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
shape2.getFillFormat().setFillType(FillType.Solid);
shape2.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
shape3.getFillFormat().setFillType(FillType.Solid);
shape3.getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Definir a largura da linha.
shape1.getLineFormat().setWidth(15);
shape2.getLineFormat().setWidth(15);
shape3.getLineFormat().setWidth(15);
// Definir a cor para a linha de cada retângulo.
shape1.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape1.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
shape2.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape2.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
shape3.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape3.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
// Definir o estilo de junção.
shape1.getLineFormat().setJoinStyle(LineJoinStyle.Miter);
shape2.getLineFormat().setJoinStyle(LineJoinStyle.Bevel);
shape3.getLineFormat().setJoinStyle(LineJoinStyle.Round);
// Adicionar texto a cada retângulo.
shape1.getTextFrame().setText("Miter Join Style");
shape2.getTextFrame().setText("Bevel Join Style");
shape3.getTextFrame().setText("Round Join Style");
// Salvar o arquivo PPTX no disco.
presentation.save("join_styles.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Preenchimento em Degradê
No PowerPoint, Preenchimento em Degradê é uma opção de formatação que permite aplicar uma transição contínua de cores a uma forma. Por exemplo, você pode aplicar duas ou mais cores de modo que uma se dissolva gradualmente na outra.
Veja como aplicar um preenchimento em degradê a uma forma usando Aspose.Slides:
- Crie uma instância da Presentation class.
- Obtenha uma referência a um slide pelo seu índice.
- Adicione um IAutoShape ao slide.
- Defina o FillType da forma como
Gradient. - Adicione suas duas cores preferidas com posições definidas usando os métodos
addda coleção de parada de degradê exposta pela interface IGradientFormat. - Salve a apresentação modificada como um arquivo PPTX.
O código Java a seguir demonstra como aplicar um efeito de preenchimento em degradê a uma elipse:
import com.aspose.slides.*;
// Instanciar a classe Presentation que representa um arquivo de apresentação.
Presentation presentation = new Presentation();
try {
// Obter o primeiro slide.
ISlide slide = presentation.getSlides().get_Item(0);
// Adicionar uma autoforma do tipo Ellipse.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 150, 75);
// Aplicar formatação de degradê à elipse.
shape.getFillFormat().setFillType(FillType.Gradient);
shape.getFillFormat().getGradientFormat().setGradientShape(GradientShape.Linear);
// Definir a direção do degradê.
shape.getFillFormat().getGradientFormat().setGradientDirection(GradientDirection.FromCorner2);
// Adicionar duas paradas de degradê.
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor((float)1.0, PresetColor.Purple);
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor((float)0, PresetColor.Red);
// Salvar o arquivo PPTX no disco.
presentation.save("gradient_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Preenchimento com Padrão
No PowerPoint, Preenchimento com Padrão é uma opção de formatação que permite aplicar um design de duas cores — como pontos, listras, tramas ou quadriculados — a uma forma. Você pode escolher cores personalizadas para o primeiro plano e o plano de fundo do padrão.
Aspose.Slides oferece mais de 45 estilos de padrão predefinidos que podem ser aplicados às formas para melhorar o apelo visual das apresentações. Mesmo após selecionar um padrão predefinido, ainda é possível especificar as cores exatas que ele deve usar.
Veja como aplicar um preenchimento com padrão a uma forma usando Aspose.Slides:
- Crie uma instância da Presentation class.
- Obtenha uma referência a um slide pelo seu índice.
- Adicione um IAutoShape ao slide.
- Defina o FillType da forma como
Pattern. - Escolha um estilo de padrão entre as opções predefinidas.
- Defina a Background Color do padrão.
- Defina a Foreground Color do padrão.
- Salve a apresentação modificada como um arquivo PPTX.
O código Java a seguir demonstra como aplicar um preenchimento com padrão a um retângulo:
import com.aspose.slides.*;
import java.awt.Color;
// Instanciar a classe Presentation que representa um arquivo de apresentação.
Presentation presentation = new Presentation();
try {
// Obter o primeiro slide.
ISlide slide = presentation.getSlides().get_Item(0);
// Adicionar uma autoforma do tipo Retângulo.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
// Definir o tipo de preenchimento como Padrão.
shape.getFillFormat().setFillType(FillType.Pattern);
// Definir o estilo de padrão.
shape.getFillFormat().getPatternFormat().setPatternStyle(PatternStyle.Trellis);
// Definir as cores de fundo e de primeiro plano do padrão.
shape.getFillFormat().getPatternFormat().getBackColor().setColor(Color.LIGHT_GRAY);
shape.getFillFormat().getPatternFormat().getForeColor().setColor(Color.YELLOW);
// Salvar o arquivo PPTX no disco.
presentation.save("pattern_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Preenchimento com Imagem
No PowerPoint, Preenchimento com Imagem é uma opção de formatação que permite inserir uma imagem dentro de uma forma — efetivamente usando a imagem como plano de fundo da forma.
Veja como usar Aspose.Slides para aplicar um preenchimento com imagem a uma forma:
- Crie uma instância da Presentation class.
- Obtenha uma referência a um slide pelo seu índice.
- Adicione um IAutoShape ao slide.
- Defina o FillType da forma como
Picture. - Defina o modo de preenchimento da imagem como
Tile(ou outro modo preferido). - Crie um objeto IPPImage a partir da imagem que deseja usar.
- Passe a imagem para o método
ISlidesPicture.setImage. - Salve a apresentação modificada como um arquivo PPTX.
Suponha que temos um arquivo “lotus.png” com a imagem a seguir:

O código Java a seguir demonstra como preencher uma forma com a imagem:
import com.aspose.slides.*;
// Instanciar a classe Presentation que representa um arquivo de apresentação.
Presentation presentation = new Presentation();
try {
// Obter o primeiro slide.
ISlide slide = presentation.getSlides().get_Item(0);
// Adicionar uma autoforma do tipo Retângulo.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 255, 130);
// Definir o tipo de preenchimento como Imagem.
shape.getFillFormat().setFillType(FillType.Picture);
// Definir o modo de preenchimento da imagem.
shape.getFillFormat().getPictureFillFormat().setPictureFillMode(PictureFillMode.Tile);
// Carregar uma imagem e adicioná‑la aos recursos da apresentação.
IImage image = Images.fromFile("lotus.png");
IPPImage picture = presentation.getImages().addImage(image);
image.dispose();
// Definir a imagem.
shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture);
// Salvar o arquivo PPTX no disco.
presentation.save("picture_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Imagem em Tile como Textura
Se desejar definir uma imagem em “tile” como textura e personalizar o comportamento de ladrilhamento, use os seguintes métodos da interface IPictureFillFormat e da classe PictureFillFormat:
- setPictureFillMode: Define o modo de preenchimento da imagem —
TileouStretch. - setTileAlignment: Especifica o alinhamento dos tiles dentro da forma.
- setTileFlip: Controla se o tile é espelhado horizontalmente, verticalmente ou em ambas as direções.
- setTileOffsetX: Define o deslocamento horizontal do tile (em pontos) a partir da origem da forma.
- setTileOffsetY: Define o deslocamento vertical do tile (em pontos) a partir da origem da forma.
- setTileScaleX: Define a escala horizontal do tile como percentual.
- setTileScaleY: Define a escala vertical do tile como percentual.
O exemplo de código a seguir mostra como adicionar uma forma retangular com preenchimento de imagem em tile e configurar as opções de tile:
import com.aspose.slides.*;
// Instanciar a classe Presentation que representa um arquivo de apresentação.
Presentation presentation = new Presentation();
try {
// Obter o primeiro slide.
ISlide firstSlide = presentation.getSlides().get_Item(0);
// Adicionar uma autoforma de retângulo.
IAutoShape shape = firstSlide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 190, 95);
// Definir o tipo de preenchimento da forma como Imagem.
shape.getFillFormat().setFillType(FillType.Picture);
// Carregar a imagem e adicioná‑la aos recursos da apresentação.
IImage sourceImage = Images.fromFile("lotus.png");
IPPImage presentationImage = presentation.getImages().addImage(sourceImage);
sourceImage.dispose();
// Atribuir a imagem à forma.
IPictureFillFormat pictureFillFormat = shape.getFillFormat().getPictureFillFormat();
pictureFillFormat.getPicture().setImage(presentationImage);
// Configurar o modo de preenchimento da imagem e as propriedades de ladrilhamento.
pictureFillFormat.setPictureFillMode(PictureFillMode.Tile);
pictureFillFormat.setTileOffsetX(-32);
pictureFillFormat.setTileOffsetY(-32);
pictureFillFormat.setTileScaleX(50);
pictureFillFormat.setTileScaleY(50);
pictureFillFormat.setTileAlignment(RectangleAlignment.BottomRight);
pictureFillFormat.setTileFlip(TileFlip.FlipBoth);
// Salvar o arquivo PPTX no disco.
presentation.save("tile.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Preenchimento com Cor Sólida
No PowerPoint, Preenchimento com Cor Sólida é uma opção de formatação que preenche uma forma com uma única cor uniforme. Essa cor de fundo simples é aplicada sem degradês, texturas ou padrões.
Para aplicar um preenchimento com cor sólida a uma forma usando Aspose.Slides, siga estas etapas:
- Crie uma instância da Presentation class.
- Obtenha uma referência a um slide pelo seu índice.
- Adicione um IAutoShape ao slide.
- Defina o FillType da forma como
Solid. - Atribua a cor de preenchimento desejada à forma.
- Salve a apresentação modificada como um arquivo PPTX.
O código Java a seguir demonstra como aplicar um preenchimento com cor sólida a um retângulo em um slide do PowerPoint:
import com.aspose.slides.*;
import java.awt.Color;
// Instanciar a classe Presentation que representa um arquivo de apresentação.
Presentation presentation = new Presentation();
try {
// Obter o primeiro slide.
ISlide slide = presentation.getSlides().get_Item(0);
// Adicionar uma autoforma do tipo Retângulo.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
// Definir o tipo de preenchimento como Sólido.
shape.getFillFormat().setFillType(FillType.Solid);
// Definir a cor de preenchimento.
shape.getFillFormat().getSolidFillColor().setColor(Color.YELLOW);
// Salvar o arquivo PPTX no disco.
presentation.save("solid_color_fill.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Definir Transparência
No PowerPoint, ao aplicar um preenchimento sólido, degradê, imagem ou textura a formas, você também pode definir um nível de transparência para controlar a opacidade do preenchimento. Um valor de transparência maior deixa a forma mais translúcida, permitindo que o fundo ou objetos subjacentes fiquem parcialmente visíveis.
Aspose.Slides permite definir o nível de transparência ajustando o valor alfa da cor usada no preenchimento. Veja como fazer isso:
- Crie uma instância da Presentation class.
- Obtenha uma referência a um slide pelo seu índice.
- Adicione um IAutoShape ao slide.
- Defina o FillType como
Solid. - Use
Colorpara definir uma cor com transparência (o componentealphacontrola a transparência). - Salve a apresentação.
O código Java a seguir demonstra como aplicar uma cor de preenchimento transparente a um retângulo:
import com.aspose.slides.*;
import java.awt.Color;
// Instanciar a classe Presentation que representa um arquivo de apresentação.
Presentation presentation = new Presentation();
try {
// Obter o primeiro slide.
ISlide slide = presentation.getSlides().get_Item(0);
// Adicionar uma autoforma retangular sólida.
IAutoShape solidShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
// Adicionar uma autoforma retangular transparente sobre a forma sólida.
IAutoShape transparentShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 80, 80, 150, 75);
transparentShape.getFillFormat().setFillType(FillType.Solid);
transparentShape.getFillFormat().getSolidFillColor().setColor(new Color(255, 255, 0, 204));
// Salvar o arquivo PPTX no disco.
presentation.save("shape_transparency.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Rotacionar Formas
Aspose.Slides permite rotacionar formas em apresentações do PowerPoint. Isso pode ser útil ao posicionar elementos visuais com requisitos específicos de alinhamento ou design.
Para rotacionar uma forma em um slide, siga estas etapas:
- Crie uma instância da Presentation class.
- Obtenha uma referência a um slide pelo seu índice.
- Adicione um IAutoShape ao slide.
- Defina a propriedade de rotação da forma para o ângulo desejado.
- Salve a apresentação.
O código Java a seguir demonstra como rotacionar uma forma em 5 graus:
import com.aspose.slides.*;
// Instanciar a classe Presentation que representa um arquivo de apresentação.
Presentation presentation = new Presentation();
try {
// Obter o primeiro slide.
ISlide slide = presentation.getSlides().get_Item(0);
// Adicionar uma autoforma do tipo Retângulo.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
// Rotacionar a forma em 5 graus.
shape.setRotation(5);
// Salvar o arquivo PPTX no disco.
presentation.save("shape_rotation.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Adicionar Efeitos de Bisel 3D
Aspose.Slides permite aplicar efeitos de bisel 3D a formas configurando suas propriedades ThreeDFormat.
Para adicionar efeitos de bisel 3D a uma forma, siga estas etapas:
- Instancie a Presentation class.
- Obtenha uma referência a um slide pelo seu índice.
- Adicione um IAutoShape ao slide.
- Configure o ThreeDFormat da forma para definir as configurações de bisel.
- Salve a apresentação.
O código Java a seguir mostra como aplicar efeitos de bisel 3D a uma forma:
import com.aspose.slides.*;
import java.awt.Color;
// Criar uma instância da classe Presentation.
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Adicionar uma forma ao slide.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 100, 100);
shape.getFillFormat().setFillType(FillType.Solid);
shape.getFillFormat().getSolidFillColor().setColor(Color.GREEN);
shape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.ORANGE);
shape.getLineFormat().setWidth(2.0);
// Definir as propriedades ThreeDFormat da forma.
shape.getThreeDFormat().setDepth(4);
shape.getThreeDFormat().getBevelTop().setBevelType(BevelPresetType.Circle);
shape.getThreeDFormat().getBevelTop().setHeight(6);
shape.getThreeDFormat().getBevelTop().setWidth(6);
shape.getThreeDFormat().getCamera().setCameraType(CameraPresetType.OrthographicFront);
shape.getThreeDFormat().getLightRig().setLightType(LightRigPresetType.ThreePt);
shape.getThreeDFormat().getLightRig().setDirection(LightingDirection.Top);
// Salvar a apresentação como um arquivo PPTX.
presentation.save("3D_bevel_effect.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Adicionar Efeitos de Rotação 3D
Aspose.Slides permite aplicar efeitos de rotação 3D a formas configurando suas propriedades ThreeDFormat.
Para aplicar rotação 3D a uma forma:
- Crie uma instância da Presentation class.
- Obtenha uma referência a um slide pelo seu índice.
- Adicione um IAutoShape ao slide.
- Use setCameraType e setLightType para definir a rotação 3D.
- Salve a apresentação.
O código Java a seguir demonstra como aplicar efeitos de rotação 3D a uma forma:
import com.aspose.slides.*;
// Criar uma instância da classe Presentation.
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);
autoShape.getTextFrame().setText("Hello, Aspose!");
autoShape.getThreeDFormat().setDepth(6);
autoShape.getThreeDFormat().getCamera().setRotation(40, 35, 20);
autoShape.getThreeDFormat().getCamera().setCameraType(CameraPresetType.IsometricLeftUp);
autoShape.getThreeDFormat().getLightRig().setLightType(LightRigPresetType.Balanced);
// Salvar a apresentação como um arquivo PPTX.
presentation.save("3D_rotation_effect.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
O resultado:

Controlar Renderização em Preto‑e‑Branco para Formas
O método IShape.setBlackWhiteMode especifica como uma forma individual é renderizada quando uma apresentação é visualizada ou processada em modo preto‑e‑branco. Ele não habilita a exibição em preto‑e‑branco por si só e não altera o preenchimento, a linha ou outras formatações da forma no modo de cor normal.
Use um valor da classe BlackWhiteMode para selecionar o comportamento desejado. Por exemplo, Automatic permite que o aplicativo de renderização escolha a conversão, Gray e LightGray usam tons de cinza, BlackWhite usa apenas preto e branco, Black e White forçam uma única cor, Color preserva a coloração normal e Hidden omite a forma no modo preto‑e‑branco. NotDefined indica que nenhum modo de nível de forma foi atribuído.
O código Java a seguir cria uma forma colorida e faz com que ela apareça cinza em modo de exibição preto‑e‑branco:
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 100);
shape.getFillFormat().setFillType(FillType.Solid);
shape.getFillFormat().getSolidFillColor().setColor(Color.ORANGE);
// Manter o preenchimento laranja no modo colorido, mas renderizar a forma com coloração cinza no modo preto-e-branco.
shape.setBlackWhiteMode(BlackWhiteMode.Gray);
presentation.save("shape_black_white_mode.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
No modo de cor normal, o retângulo mantém seu preenchimento laranja. Em um fluxo de trabalho de exibição preto‑e‑branco, ele usa coloração cinza porque seu modo está definido como Gray. Isso permite que você preserve um slide em cores completas enquanto define uma aparência distinta para impressão, visualização ou outros fluxos de trabalho que respeitam as configurações de exibição preto‑e‑branco da apresentação.
Redefinir Formatação
O código Java a seguir mostra como redefinir a formatação de um slide e restaurar a posição, tamanho e formatação de todas as formas com marcadores de posição no LayoutSlide para suas configurações padrão:
import com.aspose.slides.*;
Presentation presentation = new Presentation("sample.pptx");
try {
for (ISlide slide : presentation.getSlides()) {
// Redefinir cada forma no slide que tem um marcador de posição no layout.
slide.reset();
}
presentation.save("reset_formatting.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
A formatação de formas afeta o tamanho final do arquivo da apresentação?
Apenas minimamente. Imagens e mídia incorporadas ocupam a maior parte do espaço do arquivo, enquanto parâmetros de forma como cores, efeitos e degradês são armazenados como metadados e adicionam praticamente nenhum tamanho extra.
Como posso detectar formas em um slide que compartilham formatação idêntica para agrupá‑las?
Compare as propriedades chave de formatação de cada forma — preenchimento, linha e configurações de efeito. Se todos os valores correspondentes coincidirem, trate seus estilos como idênticos e agrupe logicamente essas formas, o que simplifica o gerenciamento de estilos posteriormente.
Posso salvar um conjunto de estilos de forma personalizados em um arquivo separado para reutilização em outras apresentações?
Sim. Armazene formas de exemplo com os estilos desejados em um slide‑modelo ou em um arquivo de modelo .POTX. Ao criar uma nova apresentação, abra o modelo, clone as formas estilizadas que precisar e reaplique sua formatação onde for necessário.