Formatar Formas do PowerPoint em JavaScript

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, você pode formatar formas especificando configurações que controlam como seus interiores são preenchidos.

format-shape-powerpoint

Aspose.Slides for Node.js via Java fornece classes 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. Os passos a seguir descrevem o procedimento:

  1. Crie uma instância da classe Presentation.
  2. Obtenha uma referência a um slide pelo seu índice.
  3. Adicione um AutoShape ao slide.
  4. Defina o estilo de linha da forma.
  5. Defina a largura da linha.
  6. Defina o estilo de traço da linha.
  7. Defina a cor da linha para a forma.
  8. Salve a apresentação modificada como um arquivo PPTX.

O código a seguir demonstra como formatar um retângulo AutoShape:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Instanciar a classe Presentation que representa um arquivo de apresentação.
let presentation = new aspose.slides.Presentation();
try {
    // Obter o primeiro slide.
    let slide = presentation.getSlides().get_Item(0);

    // Adicionar uma forma automática do tipo Retângulo.
    let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 150, 75);

    // Remover o preenchimento da forma retângulo.
    shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));

    // Aplicar formatação às linhas do retângulo.
    shape.getLineFormat().setStyle(java.newByte(aspose.slides.LineStyle.ThickThin));
    shape.getLineFormat().setWidth(7);
    shape.getLineFormat().setDashStyle(java.newByte(aspose.slides.LineDashStyle.Dash));

    // Definir a cor da linha do retângulo.
    shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));

    // Salvar o arquivo PPTX no disco.
    presentation.save("formatted_lines.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

As linhas formatadas na apresentação

Aplicar Efeitos de Esboço às Linhas de Forma

Um efeito de esboço faz com que a linha de uma forma pareça desenhada à mão. Use Shape.getLineFormat para acessar as configurações da linha, LineFormat.getSketchFormat para acessar as configurações de esboço e SketchFormat.setSketchType para selecionar um valor da enumeração LineSketchType.

O código JavaScript a seguir mostra como aplicar o efeito LineSketchType.Curved, ler o valor atribuído explicitamente e remover o efeito com LineSketchType.None:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation();
try {
    let slide = presentation.getSlides().get_Item(0);
    let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100);

    // Acessar o formato de linha da forma e seu formato de esboço.
    let sketchFormat = shape.getLineFormat().getSketchFormat();

    // Aplicar um efeito de esboço.
    sketchFormat.setSketchType(aspose.slides.LineSketchType.Curved);

    // Ler o efeito de esboço atribuído diretamente à forma.
    let explicitSketchType = sketchFormat.getSketchType();
    console.log("Explicit sketch type: " + explicitSketchType);

    // Remover o efeito de esboço.
    sketchFormat.setSketchType(aspose.slides.LineSketchType.None);
} finally {
    presentation.dispose();
}

O valor retornado por SketchFormat.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 LineFormat.getEffective, chame getSketchFormat no objeto retornado e, em seguida, chame seu método getSketchType. O valor efetivo reflete a formatação realmente aplicada após a resolução da herança:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
    let lineFormat = shape.getLineFormat();

    let explicitSketchType = lineFormat.getSketchFormat().getSketchType();
    let effectiveLineFormat = lineFormat.getEffective();
    let effectiveSketchType = effectiveLineFormat.getSketchFormat().getSketchType();

    console.log("Explicit sketch type: " + explicitSketchType);
    console.log("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 (por exemplo, no canto de uma forma), ele usa a configuração Round. No entanto, se você estiver desenhando uma forma com ângulos agudos, pode preferir a opção Miter.

O estilo de junção na apresentação

O código JavaScript 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:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Instanciar a classe Presentation que representa um arquivo de apresentação.
let presentation = new aspose.slides.Presentation();
try {
    // Obter o primeiro slide.
    let slide = presentation.getSlides().get_Item(0);

    // Adicionar três formas automáticas do tipo Retângulo.
    let shape1 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 20, 20, 150, 75);
    let shape2 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 210, 20, 150, 75);
    let shape3 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 20, 135, 150, 75);

    // Definir a cor de preenchimento para cada forma retângulo.
    shape1.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape1.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
    shape2.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape2.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
    shape3.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape3.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));

    // Definir a largura da linha.
    shape1.getLineFormat().setWidth(15);
    shape2.getLineFormat().setWidth(15);
    shape3.getLineFormat().setWidth(15);

    // Definir a cor da linha de cada retângulo.
    shape1.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape1.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
    shape2.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape2.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
    shape3.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape3.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));

    // Definir o estilo de junção.
    shape1.getLineFormat().setJoinStyle(java.newByte(aspose.slides.LineJoinStyle.Miter));
    shape2.getLineFormat().setJoinStyle(java.newByte(aspose.slides.LineJoinStyle.Bevel));
    shape3.getLineFormat().setJoinStyle(java.newByte(aspose.slides.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", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Preenchimento em Gradiente

No PowerPoint, Preenchimento em Gradiente é uma opção de formatação que permite aplicar uma mescla 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.

Aqui está como aplicar um preenchimento em gradiente a uma forma usando Aspose.Slides:

  1. Crie uma instância da classe Presentation.
  2. Obtenha uma referência a um slide pelo seu índice.
  3. Adicione um AutoShape ao slide.
  4. Defina o FillType da forma como Gradient.
  5. Adicione suas duas cores preferidas com posições definidas usando os métodos add da coleção de paradas de gradiente exposta pela classe GradientFormat.
  6. Salve a apresentação modificada como um arquivo PPTX.

O código JavaScript a seguir demonstra como aplicar um efeito de preenchimento em gradiente a uma elipse:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Instanciar a classe Presentation que representa um arquivo de apresentação.
let presentation = new aspose.slides.Presentation();
try {
    // Obter o primeiro slide.
    let slide = presentation.getSlides().get_Item(0);

    // Adicionar uma forma automática do tipo Elipse.
    let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Ellipse, 50, 50, 150, 75);

    // Aplicar formatação de gradiente à elipse.
    shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient));
    shape.getFillFormat().getGradientFormat().setGradientShape(java.newByte(aspose.slides.GradientShape.Linear));

    // Definir a direção do gradiente.
    shape.getFillFormat().getGradientFormat().setGradientDirection(aspose.slides.GradientDirection.FromCorner2);

    // Adicionar duas paradas de gradiente.
    shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor(1.0, aspose.slides.PresetColor.Purple);
    shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor(0, aspose.slides.PresetColor.Red);

    // Salvar o arquivo PPTX no disco.
    presentation.save("gradient_fill.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

A elipse com preenchimento em gradiente

Se um gradiente parecer diferente em uma imagem exportada do que no PowerPoint, veja Choose a Gradient Rendering Style. Você pode selecionar um estilo de renderização sem alterar o preenchimento em gradiente armazenado na apresentação.

Preenchimento de Padrão

No PowerPoint, Preenchimento de Padrão é uma opção de formatação que permite aplicar um design de duas cores — como pontos, listras, cruzes ou quadriculados — a uma forma. Você pode escolher cores personalizadas para o primeiro plano e o plano de fundo do padrão.

Aspose.Slides fornece mais de 45 estilos de padrão predefinidos que você pode aplicar a formas para melhorar a aparência visual de suas apresentações. Mesmo após selecionar um padrão pré‑definido, ainda pode especificar as cores exatas que ele deve usar.

Aqui está como aplicar um preenchimento de padrão a uma forma usando Aspose.Slides:

  1. Crie uma instância da classe Presentation.
  2. Obtenha uma referência a um slide pelo seu índice.
  3. Adicione um AutoShape ao slide.
  4. Defina o FillType da forma como Pattern.
  5. Escolha um estilo de padrão entre as opções predefinidas.
  6. Defina a Background Color do padrão.
  7. Defina a Foreground Color do padrão.
  8. Salve a apresentação modificada como um arquivo PPTX.

O código JavaScript a seguir demonstra como aplicar um preenchimento de padrão a um retângulo:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Instanciar a classe Presentation que representa um arquivo de apresentação.
let presentation = new aspose.slides.Presentation();
try {
    // Obter o primeiro slide.
    let slide = presentation.getSlides().get_Item(0);

    // Adicionar uma forma automática do tipo Retângulo.
    let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 75);

    // Definir o tipo de preenchimento como Padrão.
    shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern));

    // Definir o estilo do padrão.
    shape.getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.Trellis));

    // Definir as cores de fundo e de primeiro plano do padrão.
    shape.getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY"));
    shape.getFillFormat().getPatternFormat().getForeColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW"));

    // Salvar o arquivo PPTX no disco.
    presentation.save("pattern_fill.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

O retângulo com preenchimento de padrão

Preenchimento por Imagem

No PowerPoint, Preenchimento por Imagem é uma opção de formatação que permite inserir uma imagem dentro de uma forma — usando efetivamente a imagem como plano de fundo da forma.

Aqui está como usar Aspose.Slides para aplicar um preenchimento por imagem a uma forma:

  1. Crie uma instância da classe Presentation.
  2. Obtenha uma referência a um slide pelo seu índice.
  3. Adicione um AutoShape ao slide.
  4. Defina o FillType da forma como Picture.
  5. Defina o modo de preenchimento da imagem como Tile (ou outro modo preferido).
  6. Crie um objeto PPImage a partir da imagem que deseja usar.
  7. Passe a imagem para o método ISlidesPicture.setImage.
  8. Salve a apresentação modificada como um arquivo PPTX.

Vamos supor que temos um arquivo “lotus.png” com a seguinte imagem:

A imagem lotus

O código JavaScript a seguir demonstra como preencher uma forma com a imagem:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Instanciar a classe Presentation que representa um arquivo de apresentação.
let presentation = new aspose.slides.Presentation();
try {
    // Obter o primeiro slide.
    let slide = presentation.getSlides().get_Item(0);

    // Adicionar uma forma automática do tipo Retângulo.
    let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 255, 130);
    
    // Definir o tipo de preenchimento como Imagem.
    shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture));

    // Definir o modo de preenchimento da imagem.
    shape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Tile);

    // Carregar uma imagem e adicioná‑la aos recursos da apresentação.
    let image = aspose.slides.Images.fromFile("lotus.png");
    let 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", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

A forma com preenchimento por imagem

Imagem em Tile como Textura

Se você quiser definir uma imagem em mosaico como textura e personalizar o comportamento de repetição, pode usar os seguintes métodos da classe PictureFillFormat:

  • setPictureFillMode: Define o modo de preenchimento da imagem — Tile ou Stretch.
  • setTileAlignment: Especifica o alinhamento dos blocos dentro da forma.
  • setTileFlip: Controla se o bloco é espelhado horizontalmente, verticalmente ou ambos.
  • setTileOffsetX: Define o deslocamento horizontal do bloco (em pontos) a partir da origem da forma.
  • setTileOffsetY: Define o deslocamento vertical do bloco (em pontos) a partir da origem da forma.
  • setTileScaleX: Define a escala horizontal do bloco como porcentagem.
  • setTileScaleY: Define a escala vertical do bloco como porcentagem.

O exemplo de código a seguir mostra como adicionar uma forma retangular com preenchimento de imagem em mosaico e configurar as opções de bloco:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Instanciar a classe Presentation que representa um arquivo de apresentação.
let presentation = new aspose.slides.Presentation();
try {
    // Obter o primeiro slide.
    let firstSlide = presentation.getSlides().get_Item(0);

    // Adicionar uma forma automática retangular.
    let shape = firstSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 190, 95);

    // Definir o tipo de preenchimento da forma como Imagem.
    shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture));

    // Carregar a imagem e adicioná‑la aos recursos da apresentação.
    let sourceImage = aspose.slides.Images.fromFile("lotus.png");
    let presentationImage = presentation.getImages().addImage(sourceImage);
    sourceImage.dispose();

    // Atribuir a imagem à forma.
    let pictureFillFormat = shape.getFillFormat().getPictureFillFormat();
    pictureFillFormat.getPicture().setImage(presentationImage);

    // Configurar o modo de preenchimento da imagem e as propriedades de repetição.
    pictureFillFormat.setPictureFillMode(aspose.slides.PictureFillMode.Tile);
    pictureFillFormat.setTileOffsetX(-32);
    pictureFillFormat.setTileOffsetY(-32);
    pictureFillFormat.setTileScaleX(50);
    pictureFillFormat.setTileScaleY(50);
    pictureFillFormat.setTileAlignment(java.newByte(aspose.slides.RectangleAlignment.BottomRight));
    pictureFillFormat.setTileFlip(aspose.slides.TileFlip.FlipBoth);

    // Salvar o arquivo PPTX no disco.
    presentation.save("tile.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

As opções de tile

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 gradientes, texturas ou padrões.

Para aplicar um preenchimento com cor sólida a uma forma usando Aspose.Slides, siga estas etapas:

  1. Crie uma instância da classe Presentation.
  2. Obtenha uma referência a um slide pelo seu índice.
  3. Adicione um AutoShape ao slide.
  4. Defina o FillType da forma como Solid.
  5. Atribua a cor de preenchimento desejada à forma.
  6. Salve a apresentação modificada como um arquivo PPTX.

O código JavaScript a seguir demonstra como aplicar um preenchimento de cor sólida a um retângulo em um slide PowerPoint:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Instanciar a classe Presentation que representa um arquivo de apresentação.
let presentation = new aspose.slides.Presentation();
try {
    // Obter o primeiro slide.
    let slide = presentation.getSlides().get_Item(0);

    // Adicionar uma forma automática do tipo Retângulo.
    let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 75);

    // Definir o tipo de preenchimento como Solid.
    shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));

    // Definir a cor de preenchimento.
    shape.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW"));

    // Salvar o arquivo PPTX no disco.
    presentation.save("solid_color_fill.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

A forma com preenchimento de cor sólida

Definir Transparência

No PowerPoint, ao aplicar um preenchimento de cor sólida, gradiente, 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 mais alto torna a forma mais translúcida, permitindo que o plano de fundo ou objetos subjacentes fiquem parcialmente visíveis.

Aspose.Slides permite definir o nível de transparência ajustando o valor alfa na cor usada para o preenchimento. Veja como fazer:

  1. Crie uma instância da classe Presentation.
  2. Obtenha uma referência a um slide pelo seu índice.
  3. Adicione um AutoShape ao slide.
  4. Defina o FillType como Solid.
  5. Use Color para definir uma cor com transparência (o componente alpha controla a transparência).
  6. Salve a apresentação.

O código JavaScript a seguir demonstra como aplicar uma cor de preenchimento transparente a um retângulo:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Instanciar a classe Presentation que representa um arquivo de apresentação.
let presentation = new aspose.slides.Presentation();
try {
    // Obter o primeiro slide.
    let slide = presentation.getSlides().get_Item(0);

    // Adicionar uma forma automática retangular sólida.
    let solidShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 75);

    // Adicionar uma forma automática retangular transparente sobre a forma sólida.
    let transparentShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 80, 80, 150, 75);
    transparentShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    transparentShape.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", 255, 255, 0, 204));

    // Salvar o arquivo PPTX no disco.
    presentation.save("shape_transparency.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

A forma transparente

Rotacionar Formas

Aspose.Slides permite rotacionar formas em apresentações PowerPoint. Isso pode ser útil ao posicionar elementos visuais com necessidades específicas de alinhamento ou design.

Para rotacionar uma forma em um slide, siga estas etapas:

  1. Crie uma instância da classe Presentation.
  2. Obtenha uma referência a um slide pelo seu índice.
  3. Adicione um AutoShape ao slide.
  4. Defina a propriedade de rotação da forma para o ângulo desejado.
  5. Salve a apresentação.

O código JavaScript a seguir demonstra como rotacionar uma forma em 5 graus:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

// Instanciar a classe Presentation que representa um arquivo de apresentação.
let presentation = new aspose.slides.Presentation();
try {
    // Obter o primeiro slide.
    let slide = presentation.getSlides().get_Item(0);

    // Adicionar uma forma automática do tipo Retângulo.
    let shape = slide.getShapes().addAutoShape(aspose.slides.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", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

A rotação da forma

Adicionar Efeitos de Bisel 3D

Aspose.Slides permite aplicar efeitos de bisel 3D a formas configurando as propriedades do ThreeDFormat.

Para adicionar efeitos de bisel 3D a uma forma, siga estas etapas:

  1. Instancie a classe Presentation.
  2. Obtenha uma referência a um slide pelo seu índice.
  3. Adicione um AutoShape ao slide.
  4. Configure o ThreeDFormat da forma para definir as configurações de bisel.
  5. Salve a apresentação.

O código JavaScript a seguir mostra como aplicar efeitos de bisel 3D a uma forma:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Criar uma instância da classe Presentation.
let presentation = new aspose.slides.Presentation();
try {
    let slide = presentation.getSlides().get_Item(0);

    // Adicionar uma forma ao slide.
    let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Ellipse, 50, 50, 100, 100);
    shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN"));
    shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE"));
    shape.getLineFormat().setWidth(2.0);

    // Definir as propriedades ThreeDFormat da forma.
    shape.getThreeDFormat().setDepth(4);
    shape.getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle);
    shape.getThreeDFormat().getBevelTop().setHeight(6);
    shape.getThreeDFormat().getBevelTop().setWidth(6);
    shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront);
    shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.ThreePt);
    shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top);

    // Salvar a apresentação como um arquivo PPTX.
    presentation.save("3D_bevel_effect.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

O efeito de bisel 3D

Adicionar Efeitos de Rotação 3D

Aspose.Slides permite aplicar efeitos de rotação 3D a formas configurando as propriedades do ThreeDFormat.

Para aplicar rotação 3D a uma forma:

  1. Crie uma instância da classe Presentation.
  2. Obtenha uma referência a um slide pelo seu índice.
  3. Adicione um AutoShape ao slide.
  4. Use setCameraType e setLightType para definir a rotação 3D.
  5. Salve a apresentação.

O código JavaScript a seguir demonstra como aplicar efeitos de rotação 3D a uma forma:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

// Criar uma instância da classe Presentation.
let presentation = new aspose.slides.Presentation();
try {
    let slide = presentation.getSlides().get_Item(0);

    let autoShape = slide.getShapes().addAutoShape(aspose.slides.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(aspose.slides.CameraPresetType.IsometricLeftUp);
    autoShape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced);

    // Salvar a apresentação como um arquivo PPTX.
    presentation.save("3D_rotation_effect.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

O resultado:

O efeito de rotação 3D

Controlar Renderização em Preto-e-Branco para Formas

O método Shape.setBlackWhiteMode especifica como uma forma individual é renderizada quando uma apresentação é visualizada ou processada em modo preto-e-branco. Ele não ativa a exibição em preto‑e‑branco por si só e não altera o preenchimento, a linha ou outra formatação da forma no modo de cor normal.

Use um valor da enumeração BlackWhiteMode para selecionar o comportamento desejado. Por exemplo, Automatic permite que o aplicativo de renderização escolha a conversão, Gray e LightGray usam coloração em tons de cinza, BlackWhite usa apenas preto e branco, Black e White forçam uma cor única, Color preserva a coloração normal e Hidden omite a forma no modo preto‑e‑branco. NotDefined significa que nenhum modo ao nível da forma foi atribuído.

O código JavaScript a seguir cria uma forma colorida e faz com que ela apareça em cinza no modo de exibição preto‑e‑branco:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

let presentation = new aspose.slides.Presentation();
try {
    let slide = presentation.getSlides().get_Item(0);

    let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100);
    shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shape.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE"));

    // Mantenha o preenchimento laranja no modo colorido, mas renderize a forma com coloração cinza no modo preto e branco.
    shape.setBlackWhiteMode(java.newByte(aspose.slides.BlackWhiteMode.Gray));

    presentation.save("shape_black_white_mode.pptx", aspose.slides.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 em 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 em preto‑e‑branco da apresentação.

Redefinir Formatação

O código JavaScript a seguir mostra como redefinir a formatação de um slide e reverter a posição, tamanho e formatação de todas as formas com marcadores no LayoutSlide para suas configurações padrão:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation("sample.pptx");
try {
    for (let i = 0; i < presentation.getSlides().size(); i++) {
        let slide = presentation.getSlides().get_Item(i);
        // Redefinir cada forma no slide que possui um placeholder no layout.
        slide.reset();
    }
    presentation.save("reset_formatting.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Perguntas Frequentes

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 gradientes são armazenados como metadados e praticamente não adicionam tamanho extra.

Como posso detectar formas em um slide que compartilham formatação idêntica para que eu possa agrupá‑las?

Compare as principais propriedades 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.