Formatear formas de PowerPoint en Java

Introducción

En PowerPoint, puedes añadir formas a las diapositivas. Dado que las formas están compuestas por líneas, puedes formatearlas modificando o aplicando efectos a sus contornos. Además, puedes formatear las formas especificando ajustes que controlan cómo se rellenan sus interiores.

format-shape-powerpoint

Aspose.Slides for Java proporciona interfaces y métodos que te permiten formatear formas utilizando las mismas opciones disponibles en PowerPoint.

Formato de líneas

Con Aspose.Slides, puedes especificar un estilo de línea personalizado para una forma. Los siguientes pasos describen el procedimiento:

  1. Crea una instancia de la clase Presentación.
  2. Obtén una referencia a una diapositiva mediante su índice.
  3. Añade un IAutoShape a la diapositiva.
  4. Establece el estilo de línea de la forma.
  5. Establece el ancho de la línea.
  6. Establece el estilo de guiones de la línea.
  7. Establece el color de la línea para la forma.
  8. Guarda la presentación modificada como un archivo PPTX.
import com.aspose.slides.*;
import java.awt.Color;

// Instanciar la clase Presentation que representa un archivo de presentación.
Presentation presentation = new Presentation();
try {
    // Obtener la primera diapositiva.
    ISlide slide = presentation.getSlides().get_Item(0);

    // Añadir una autoforma del tipo Rectangle.
    IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 150, 150, 75);

    // Establecer el color de relleno para la forma rectángulo.
    shape.getFillFormat().setFillType(FillType.NoFill);

    // Aplicar formato a las líneas del rectángulo.
    shape.getLineFormat().setStyle(LineStyle.ThickThin);
    shape.getLineFormat().setWidth(7);
    shape.getLineFormat().setDashStyle(LineDashStyle.Dash);

    // Establecer el color para la línea del rectángulo.
    shape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
    shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);

    // Guardar el archivo PPTX en disco.
    presentation.save("formatted_lines.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

El resultado:

Las líneas formateadas en la presentación

Aplicar efectos de boceto a las líneas de la forma

Un efecto de boceto hace que la línea de una forma parezca dibujada a mano. Utiliza IShape.getLineFormat para acceder a la configuración de la línea, ILineFormat.getSketchFormat para acceder a la configuración del boceto y ISketchFormat.setSketchType para seleccionar un valor de la enumeración LineSketchType.

El siguiente código Java muestra cómo aplicar un efecto LineSketchType.Curved, leer el valor asignado explícitamente y eliminar el efecto con 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);

    // Acceder al formato de línea de la forma y a su formato de boceto.
    ISketchFormat sketchFormat = shape.getLineFormat().getSketchFormat();

    // Aplicar un efecto de boceto.
    sketchFormat.setSketchType(LineSketchType.Curved);

    // Leer el efecto de boceto asignado directamente a la forma.
    int explicitSketchType = sketchFormat.getSketchType();
    System.out.println("Explicit sketch type: " + explicitSketchType);

    // Eliminar el efecto de boceto.
    sketchFormat.setSketchType(LineSketchType.None);
} finally {
    presentation.dispose();
}

El valor devuelto por ISketchFormat.getSketchType representa la configuración asignada directamente a la forma. Si el formato de línea puede heredarse de un tema, una diapositiva maestra o una diapositiva de diseño, utiliza ILineFormat.getEffective, accede a ILineFormatEffectiveData.getSketchFormat y lee ISketchFormatEffectiveData.getSketchType. El valor efectivo refleja el formato que realmente se aplica después de resolver la herencia:

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();
}

Formato de estilos de unión

Estas son las tres opciones de tipo de unión:

  • Redondeado
  • Inglete
  • Bisel

Por defecto, cuando PowerPoint une dos líneas en un ángulo (por ejemplo, en la esquina de una forma), utiliza la configuración Redondeado. Sin embargo, si dibujas una forma con ángulos agudos, puede que prefieras la opción Inglete.

El estilo de unión en la presentación

El siguiente código Java demuestra cómo se crearon tres rectángulos (como se muestra en la imagen anterior) utilizando los ajustes de tipo de unión Miter, Bevel y Round:

import com.aspose.slides.*;
import java.awt.Color;

// Instanciar la clase Presentation que representa un archivo de presentación.
Presentation presentation = new Presentation();
try {
    // Obtener la primera diapositiva.
    ISlide slide = presentation.getSlides().get_Item(0);

    // Añadir tres autoformas del tipo Rectangle.
    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);

    // Establecer el color de relleno para cada forma rectá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);

    // Establecer el ancho de la línea.
    shape1.getLineFormat().setWidth(15);
    shape2.getLineFormat().setWidth(15);
    shape3.getLineFormat().setWidth(15);

    // Establecer el color para la línea de cada rectá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);

    // Establecer el estilo de unión.
    shape1.getLineFormat().setJoinStyle(LineJoinStyle.Miter);
    shape2.getLineFormat().setJoinStyle(LineJoinStyle.Bevel);
    shape3.getLineFormat().setJoinStyle(LineJoinStyle.Round);

    // Añadir texto a cada rectángulo.
    shape1.getTextFrame().setText("Miter Join Style");
    shape2.getTextFrame().setText("Bevel Join Style");
    shape3.getTextFrame().setText("Round Join Style");

    // Guardar el archivo PPTX en disco.
    presentation.save("join_styles.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Relleno de degradado

En PowerPoint, el Relleno de Degradado es una opción de formato que permite aplicar una fusión continua de colores a una forma. Por ejemplo, puedes aplicar dos o más colores de forma que uno se desvanezca gradualmente en otro.

Así es como se aplica un relleno de degradado a una forma usando Aspose.Slides:

  1. Crea una instancia de la clase Presentación.
  2. Obtén una referencia a una diapositiva mediante su índice.
  3. Añade un IAutoShape a la diapositiva.
  4. Establece el FillType de la forma a Gradient.
  5. Añade tus dos colores preferidos con posiciones definidas usando los métodos add de la colección de paradas de degradado expuesta por la interfaz IGradientFormat.
  6. Guarda la presentación modificada como un archivo PPTX.
import com.aspose.slides.*;

// Instanciar la clase Presentation que representa un archivo de presentación.
Presentation presentation = new Presentation();
try {
    // Obtener la primera diapositiva.
    ISlide slide = presentation.getSlides().get_Item(0);

    // Añadir una autoforma del tipo Ellipse.
    IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 150, 75);

    // Aplicar formato de degradado al elipse.
    shape.getFillFormat().setFillType(FillType.Gradient);
    shape.getFillFormat().getGradientFormat().setGradientShape(GradientShape.Linear);

    // Establecer la dirección del degradado.
    shape.getFillFormat().getGradientFormat().setGradientDirection(GradientDirection.FromCorner2);

    // Añadir dos paradas de degradado.
    shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor((float)1.0, PresetColor.Purple);
    shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor((float)0, PresetColor.Red);

    // Guardar el archivo PPTX en disco.
    presentation.save("gradient_fill.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

La elipse con relleno de degradado:

La elipse con relleno de degradado

Relleno de patrón

En PowerPoint, el Relleno de Patrón es una opción de formato que permite aplicar un diseño de dos colores —como puntos, rayas, tramas cruzadas o cuadros— a una forma. Puedes elegir colores personalizados para el primer plano y el fondo del patrón.

Aspose.Slides ofrece más de 45 estilos de patrón predefinidos que puedes aplicar a las formas para mejorar el atractivo visual de tus presentaciones. Incluso después de seleccionar un patrón predefinido, puedes especificar los colores exactos que debe usar.

Aquí se muestra cómo aplicar un relleno de patrón a una forma usando Aspose.Slides:

  1. Crea una instancia de la clase Presentación.
  2. Obtén una referencia a una diapositiva mediante su índice.
  3. Añade un IAutoShape a la diapositiva.
  4. Establece el FillType de la forma a Pattern.
  5. Elige un estilo de patrón entre las opciones predefinidas.
  6. Establece el Background Color del patrón.
  7. Establece el Foreground Color del patrón.
  8. Guarda la presentación modificada como un archivo PPTX.
import com.aspose.slides.*;
import java.awt.Color;

// Instanciar la clase Presentation que representa un archivo de presentación.
Presentation presentation = new Presentation();
try {
    // Obtener la primera diapositiva.
    ISlide slide = presentation.getSlides().get_Item(0);

    // Añadir una autoforma del tipo Rectangle.
    IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);

    // Establecer el tipo de relleno a Pattern.
    shape.getFillFormat().setFillType(FillType.Pattern);

    // Establecer el estilo del patrón.
    shape.getFillFormat().getPatternFormat().setPatternStyle(PatternStyle.Trellis);

    // Establecer los colores de fondo y de primer plano del patrón.
    shape.getFillFormat().getPatternFormat().getBackColor().setColor(Color.LIGHT_GRAY);
    shape.getFillFormat().getPatternFormat().getForeColor().setColor(Color.YELLOW);

    // Guardar el archivo PPTX en disco.
    presentation.save("pattern_fill.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

El rectángulo con relleno de patrón:

El rectángulo con relleno de patrón

Relleno de imagen

En PowerPoint, el Relleno de Imagen es una opción de formato que permite insertar una imagen dentro de una forma, usando efectivamente la imagen como fondo de la forma.

Aquí se muestra cómo usar Aspose.Slides para aplicar un relleno de imagen a una forma:

  1. Crea una instancia de la clase Presentación.
  2. Obtén una referencia a una diapositiva mediante su índice.
  3. Añade un IAutoShape a la diapositiva.
  4. Establece el FillType de la forma a Picture.
  5. Establece el modo de relleno de imagen a Tile (u otro modo preferido).
  6. Crea un objeto [IPPImage] a partir de la imagen que deseas usar.
  7. Pasa la imagen al método ISlidesPicture.setImage.
  8. Guarda la presentación modificada como un archivo PPTX.

Supongamos que tenemos un archivo “lotus.png” con la siguiente imagen:

La imagen del loto

import com.aspose.slides.*;

// Instanciar la clase Presentation que representa un archivo de presentación.
Presentation presentation = new Presentation();
try {
    // Obtener la primera diapositiva.
    ISlide slide = presentation.getSlides().get_Item(0);

    // Añadir una autoforma del tipo Rectangle.
    IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 255, 130);
    
    // Establecer el tipo de relleno a Picture.
    shape.getFillFormat().setFillType(FillType.Picture);

    // Establecer el modo de relleno de imagen.
    shape.getFillFormat().getPictureFillFormat().setPictureFillMode(PictureFillMode.Tile);

    // Cargar una imagen y añadirla a los recursos de la presentación.
    IImage image = Images.fromFile("lotus.png");
    IPPImage picture = presentation.getImages().addImage(image);
    image.dispose();

    // Establecer la imagen.
    shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture);

    // Guardar el archivo PPTX en disco.
    presentation.save("picture_fill.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

La forma con relleno de imagen:

La forma con relleno de imagen

Mosaico de imagen como textura

Si deseas establecer una imagen en mosaico como textura y personalizar el comportamiento del mosaico, puedes usar los siguientes métodos de la interfaz [IPictureFillFormat] y la clase [PictureFillFormat]:

  • setPictureFillMode: Establece el modo de relleno de la imagen—ya sea Tile o Stretch.
  • setTileAlignment: Especifica la alineación de los mosaicos dentro de la forma.
  • setTileFlip: Controla si el mosaico se voltea horizontalmente, verticalmente o ambos.
  • setTileOffsetX: Establece el desplazamiento horizontal del mosaico (en puntos) desde el origen de la forma.
  • setTileOffsetY: Establece el desplazamiento vertical del mosaico (en puntos) desde el origen de la forma.
  • setTileScaleX: Define la escala horizontal del mosaico como un porcentaje.
  • setTileScaleY: Define la escala vertical del mosaico como un porcentaje.
import com.aspose.slides.*;

// Instanciar la clase Presentation que representa un archivo de presentación.
Presentation presentation = new Presentation();
try {
    // Obtener la primera diapositiva.
    ISlide firstSlide = presentation.getSlides().get_Item(0);

    // Añadir una autoforma rectangular.
    IAutoShape shape = firstSlide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 190, 95);

    // Establecer el tipo de relleno de la forma a Picture.
    shape.getFillFormat().setFillType(FillType.Picture);

    // Cargar la imagen y añadirla a los recursos de la presentación.
    IImage sourceImage = Images.fromFile("lotus.png");
    IPPImage presentationImage = presentation.getImages().addImage(sourceImage);
    sourceImage.dispose();

    // Asignar la imagen a la forma.
    IPictureFillFormat pictureFillFormat = shape.getFillFormat().getPictureFillFormat();
    pictureFillFormat.getPicture().setImage(presentationImage);

    // Configurar el modo de relleno de imagen y las propiedades de mosaico.
    pictureFillFormat.setPictureFillMode(PictureFillMode.Tile);
    pictureFillFormat.setTileOffsetX(-32);
    pictureFillFormat.setTileOffsetY(-32);
    pictureFillFormat.setTileScaleX(50);
    pictureFillFormat.setTileScaleY(50);
    pictureFillFormat.setTileAlignment(RectangleAlignment.BottomRight);
    pictureFillFormat.setTileFlip(TileFlip.FlipBoth);

    // Guardar el archivo PPTX en disco.
    presentation.save("tile.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Las opciones de mosaico:

Las opciones de mosaico

Relleno de color sólido

En PowerPoint, el Relleno de Color Sólido es una opción de formato que rellena una forma con un solo color uniforme. Este color de fondo sencillo se aplica sin degradados, texturas ni patrones.

Para aplicar un relleno de color sólido a una forma usando Aspose.Slides, sigue estos pasos:

  1. Crea una instancia de la clase Presentación.
  2. Obtén una referencia a una diapositiva mediante su índice.
  3. Añade un IAutoShape a la diapositiva.
  4. Establece el FillType de la forma a Solid.
  5. Asigna tu color de relleno preferido a la forma.
  6. Guarda la presentación modificada como un archivo PPTX.
import com.aspose.slides.*;
import java.awt.Color;

// Instanciar la clase Presentation que representa un archivo de presentación.
Presentation presentation = new Presentation();
try {
    // Obtener la primera diapositiva.
    ISlide slide = presentation.getSlides().get_Item(0);

    // Añadir una autoforma del tipo Rectangle.
    IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);

    // Establecer el tipo de relleno a Solid.
    shape.getFillFormat().setFillType(FillType.Solid);

    // Establecer el color de relleno.
    shape.getFillFormat().getSolidFillColor().setColor(Color.YELLOW);

    // Guardar el archivo PPTX en disco.
    presentation.save("solid_color_fill.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

La forma con relleno de color sólido:

La forma con relleno de color sólido

Establecer transparencia

En PowerPoint, cuando aplicas un relleno de color sólido, degradado, imagen o textura a las formas, también puedes establecer un nivel de transparencia para controlar la opacidad del relleno. Un valor de transparencia más alto hace que la forma sea más translúcida, permitiendo que el fondo o los objetos subyacentes sean parcialmente visibles.

Aspose.Slides te permite establecer el nivel de transparencia ajustando el valor alfa del color usado para el relleno. Así es como se hace:

  1. Crea una instancia de la clase Presentación.
  2. Obtén una referencia a una diapositiva mediante su índice.
  3. Añade un IAutoShape a la diapositiva.
  4. Establece el FillType a Solid.
  5. Usa Color para definir un color con transparencia (el componente alpha controla la transparencia).
  6. Guarda la presentación.
import com.aspose.slides.*;
import java.awt.Color;

// Instanciar la clase Presentation que representa un archivo de presentación.
Presentation presentation = new Presentation();
try {
    // Obtener la primera diapositiva.
    ISlide slide = presentation.getSlides().get_Item(0);

    // Añadir una autoforma rectangular sólida.
    IAutoShape solidShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);

    // Añadir una autoforma rectangular transparente sobre la 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));

    // Guardar el archivo PPTX en disco.
    presentation.save("shape_transparency.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

La forma transparente:

La forma transparente

Rotar formas

Aspose.Slides te permite rotar formas en presentaciones de PowerPoint. Esto puede ser útil al posicionar elementos visuales con necesidades específicas de alineación o diseño.

Para rotar una forma en una diapositiva, sigue estos pasos:

  1. Crea una instancia de la clase Presentación.
  2. Obtén una referencia a una diapositiva mediante su índice.
  3. Añade un IAutoShape a la diapositiva.
  4. Establece la propiedad de rotación de la forma al ángulo deseado.
  5. Guarda la presentación.
import com.aspose.slides.*;

// Instanciar la clase Presentation que representa un archivo de presentación.
Presentation presentation = new Presentation();
try {
    // Obtener la primera diapositiva.
    ISlide slide = presentation.getSlides().get_Item(0);

    // Añadir una autoforma del tipo Rectangle.
    IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75);

    // Rotar la forma 5 grados.
    shape.setRotation(5);

    // Guardar el archivo PPTX en disco.
    presentation.save("shape_rotation.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

La rotación de la forma:

La rotación de la forma

Añadir efectos de bisel 3D

Aspose.Slides permite aplicar efectos de bisel 3D a las formas configurando sus propiedades [ThreeDFormat].

Para añadir efectos de bisel 3D a una forma, sigue estos pasos:

  1. Instancia la clase Presentation.
  2. Obtén una referencia a una diapositiva mediante su índice.
  3. Añade un IAutoShape a la diapositiva.
  4. Configura el ThreeDFormat de la forma para definir los ajustes de bisel.
  5. Guarda la presentación.
import com.aspose.slides.*;
import java.awt.Color;

// Crear una instancia de la clase Presentation.
Presentation presentation = new Presentation();
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    // Añadir una forma a la diapositiva.
    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);

    // Establecer las propiedades ThreeDFormat de la 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);

    // Guardar la presentación como archivo PPTX.
    presentation.save("3D_bevel_effect.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

El efecto de bisel 3D:

El efecto de bisel 3D

Añadir efectos de rotación 3D

Aspose.Slides permite aplicar efectos de rotación 3D a las formas configurando sus propiedades [ThreeDFormat].

Para aplicar rotación 3D a una forma:

  1. Crea una instancia de la clase Presentation.
  2. Obtén una referencia a una diapositiva mediante su índice.
  3. Añade un IAutoShape a la diapositiva.
  4. Usa setCameraType y setLightType para definir la rotación 3D.
  5. Guarda la presentación.
import com.aspose.slides.*;

// Crear una instancia de la clase 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);

    // Guardar la presentación como archivo PPTX.
    presentation.save("3D_rotation_effect.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

El efecto de rotación 3D:

El efecto de rotación 3D

Controlar el renderizado en blanco y negro para formas

El método IShape.setBlackWhiteMode especifica cómo se representa una forma individual cuando una presentación se visualiza o procesa en modo blanco y negro. No habilita la visualización en blanco y negro por sí mismo, y no cambia el relleno, la línea u otro formato de la forma en el modo de color normal.

Utiliza un valor de la clase [BlackWhiteMode] para seleccionar el comportamiento deseado. Por ejemplo, Automatic permite que la aplicación de renderizado elija la conversión, Gray y LightGray usan color gris, BlackWhite usa solo negro y blanco, Black y White fuerzan un solo color, Color preserva el color normal, y Hidden omite la forma en modo blanco y negro. NotDefined indica que no se ha asignado ningún modo a nivel de forma.

El siguiente código Java crea una forma coloreada y hace que aparezca gris en modo de visualización blanco y negro:

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);

    // Mantener el relleno naranja en modo color, pero renderizar la forma con color gris en modo blanco y negro.
    shape.setBlackWhiteMode(BlackWhiteMode.Gray);

    presentation.save("shape_black_white_mode.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

En modo de color normal, el rectángulo conserva su relleno naranja. En un flujo de trabajo de visualización en blanco y negro, usa un color gris porque su modo está configurado a Gray. Esto te permite conservar una diapositiva a todo color mientras defines una apariencia distinta para la impresión, la vista previa u otros flujos que respetan la configuración de visualización en blanco y negro de la presentación.

Restablecer formato

El siguiente código Java muestra cómo restablecer el formato de una diapositiva y devolver la posición, el tamaño y el formato de todas las formas con marcadores de posición en el [LayoutSlide] a sus valores predeterminados:

import com.aspose.slides.*;

Presentation presentation = new Presentation("sample.pptx");
try {
    for (ISlide slide : presentation.getSlides()) {
        // Restablecer cada forma en la diapositiva que tenga un marcador de posición en el diseño.
        slide.reset();
    }
    presentation.save("reset_formatting.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

FAQ

¿Afecta el formato de las formas al tamaño final del archivo de la presentación?

Solo de forma mínima. Las imágenes y los medios incrustados ocupan la mayor parte del espacio del archivo, mientras que los parámetros de las formas como colores, efectos y degradados se almacenan como metadatos y casi no añaden tamaño adicional.

¿Cómo puedo detectar formas en una diapositiva que comparten el mismo formato para poder agruparlas?

Compara las propiedades clave de formato de cada forma —relleno, línea y ajustes de efectos. Si todos los valores correspondientes coinciden, considera sus estilos como idénticos y agrupa lógicamente esas formas, lo que simplifica la gestión posterior de estilos.

¿Puedo guardar un conjunto de estilos de forma personalizados en un archivo separado para reutilizarlos en otras presentaciones?

Sí. Guarda formas de ejemplo con los estilos deseados en un conjunto de diapositivas de plantilla o en un archivo de plantilla .POTX. Al crear una nueva presentación, abre la plantilla, clona las formas con estilo que necesites y vuelve a aplicar su formato donde sea necesario.