Formatear formas de PowerPoint en PHP
Introducción
En PowerPoint, puedes añadir formas a las diapositivas. Dado que las formas están compuestas por líneas, puedes darles formato modificando o aplicando efectos a sus contornos. Además, puedes dar formato a las formas especificando ajustes que controlan cómo se rellenan sus interiores.

Aspose.Slides para PHP a través de Java proporciona clases y métodos que permiten dar formato a las formas usando las mismas opciones disponibles en PowerPoint.
Formato de líneas
Usando Aspose.Slides, puedes especificar un estilo de línea personalizado para una forma. Los siguientes pasos describen el procedimiento:
- Crear una instancia de la clase Presentación.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un AutoShape a la diapositiva.
- Establecer el estilo de línea de la forma.
- Establecer el ancho de la línea.
- Establecer el estilo de guion de la línea.
- Establecer el color de la línea para la forma.
- Guardar la presentación modificada como archivo PPTX.
El siguiente código PHP muestra cómo dar formato a un AutoShape rectangular:
// Instanciar la clase Presentation que representa un archivo de presentación.
$presentation = new Presentation();
try {
// Obtener la primera diapositiva.
$slide = $presentation->getSlides()->get_Item(0);
// Añadir una autoforma del tipo Rectángulo.
$shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 150, 150, 75);
// Establecer el color de relleno para la forma rectangular.
$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(java("java.awt.Color")->BLUE);
// Guardar el archivo PPTX en disco.
$presentation->save("formatted_lines.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
El resultado:

Aplicar efectos de boceto a las líneas de la forma
Un efecto de boceto hace que una línea de forma parezca dibujada a mano. Usa Shape.getLineFormat para acceder a los ajustes de línea, LineFormat.getSketchFormat para acceder a los ajustes de boceto y SketchFormat.setSketchType para seleccionar un valor de la enumeración LineSketchType.
El siguiente código PHP muestra cómo aplicar un efecto LineSketchType.Curved, leer el valor asignado explícitamente y eliminar el efecto con LineSketchType.None:
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$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.
$sketchFormat = $shape->getLineFormat()->getSketchFormat();
// Aplicar un efecto de boceto.
$sketchFormat->setSketchType(LineSketchType::Curved);
// Leer el efecto de boceto asignado directamente a la forma.
$explicitSketchType = $sketchFormat->getSketchType();
echo "Explicit sketch type: " . $explicitSketchType . PHP_EOL;
// Eliminar el efecto de boceto.
$sketchFormat->setSketchType(LineSketchType::None);
} finally {
$presentation->dispose();
}
El valor devuelto por SketchFormat.getSketchType representa el ajuste asignado directamente a la forma. Si el formato de línea puede heredarse de un tema, diapositiva maestra o diapositiva de diseño, usa LineFormat.getEffective, accede al método getSketchFormat del objeto devuelto y lee su valor getSketchType. El valor efectivo refleja el formato que realmente se aplica después de resolver la herencia:
$presentation = new Presentation("presentation.pptx");
try {
$shape = $presentation->getSlides()->get_Item(0)->getShapes()->get_Item(0);
$lineFormat = $shape->getLineFormat();
$explicitSketchType = $lineFormat->getSketchFormat()->getSketchType();
$effectiveLineFormat = $lineFormat->getEffective();
$effectiveSketchType = $effectiveLineFormat->getSketchFormat()->getSketchType();
echo "Explicit sketch type: " . $explicitSketchType . PHP_EOL;
echo "Effective sketch type: " . $effectiveSketchType . PHP_EOL;
} finally {
$presentation->dispose();
}
Formato de estilos de unión
Estas son las tres opciones de tipo de unión:
- Redondo
- Inglete
- Bisel
Por defecto, cuando PowerPoint une dos líneas en un ángulo (como en la esquina de una forma), utiliza el ajuste Redondo. Sin embargo, si dibujas una forma con ángulos agudos, puede que prefieras la opción Inglete.

El siguiente código PHP muestra cómo se crearon tres rectángulos (como se muestra en la imagen anterior) usando los ajustes de unión Inglete, Bisel y Redondo:
// Instanciar la clase Presentation que representa un archivo de presentación.
$presentation = new Presentation();
try {
// Obtener la primera diapositiva.
$slide = $presentation->getSlides()->get_Item(0);
// Añadir tres autoformas del tipo Rectángulo.
$shape1 = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 20, 20, 150, 75);
$shape2 = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 210, 20, 150, 75);
$shape3 = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 20, 135, 150, 75);
// Establecer el color de relleno para cada forma rectangular.
$shape1->getFillFormat()->setFillType(FillType::Solid);
$shape1->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);
$shape2->getFillFormat()->setFillType(FillType::Solid);
$shape2->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);
$shape3->getFillFormat()->setFillType(FillType::Solid);
$shape3->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.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(java("java.awt.Color")->BLUE);
$shape2->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
$shape2->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
$shape3->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
$shape3->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.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 degradado
En PowerPoint, el Relleno degradado es una opción de formato que permite aplicar una transición continua de colores a una forma. Por ejemplo, puedes aplicar dos o más colores de modo que uno se desvanezca gradualmente en otro.
Así es como se aplica un relleno degradado a una forma usando Aspose.Slides:
- Crear una instancia de la clase Presentación.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un AutoShape a la diapositiva.
- Establecer el FillType de la forma a
Gradient. - Añadir tus dos colores preferidos con posiciones definidas usando los métodos
addde la colección de paradas de degradado expuesta por la clase GradientFormat. - Guardar la presentación modificada como archivo PPTX.
El siguiente código PHP muestra cómo aplicar un efecto de relleno degradado a una elipse:
// Instanciar la clase Presentation que representa un archivo de presentación.
$presentation = new Presentation();
try {
// Obtener la primera diapositiva.
$slide = $presentation->getSlides()->get_Item(0);
// Añadir una autoforma del tipo Elipse.
$shape = $slide->getShapes()->addAutoShape(ShapeType::Ellipse, 50, 50, 150, 75);
// Aplicar formato de degradado a la 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(1.0, PresetColor::Purple);
$shape->getFillFormat()->getGradientFormat()->getGradientStops()->addPresetColor(0, PresetColor::Red);
// Guardar el archivo PPTX en disco.
$presentation->save("gradient_fill.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
El resultado:

Si un degradado se ve diferente en una imagen exportada que en PowerPoint, consulta Choose a Gradient Rendering Style. Puedes seleccionar un estilo de renderizado sin cambiar el relleno degradado almacenado en la presentación.
Relleno con patrón
En PowerPoint, el Relleno con patrón es una opción de formato que permite aplicar un diseño de dos colores —como puntos, rayas, cruzados 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 aspecto visual de tus presentaciones. Incluso después de seleccionar un patrón predefinido, aún puedes especificar los colores exactos que debe usar.
Así es como se aplica un relleno con patrón a una forma usando Aspose.Slides:
- Crear una instancia de la clase Presentación.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un AutoShape a la diapositiva.
- Establecer el FillType de la forma a
Pattern. - Elegir un estilo de patrón entre las opciones predefinidas.
- Establecer el Color de fondo del patrón.
- Establecer el Color de primer plano del patrón.
- Guardar la presentación modificada como archivo PPTX.
El siguiente código PHP muestra cómo aplicar un relleno con patrón a un rectángulo:
// Instanciar la clase Presentation que representa un archivo de presentación.
$presentation = new Presentation();
try {
// Obtener la primera diapositiva.
$slide = $presentation->getSlides()->get_Item(0);
// Añadir una autoforma del tipo Rectángulo.
$shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 150, 75);
// Establecer el tipo de relleno a Patrón.
$shape->getFillFormat()->setFillType(FillType::Pattern);
// Establecer el estilo de patrón.
$shape->getFillFormat()->getPatternFormat()->setPatternStyle(PatternStyle::Trellis);
// Establecer los colores de fondo y primer plano del patrón.
$shape->getFillFormat()->getPatternFormat()->getBackColor()->setColor(java("java.awt.Color")->LIGHT_GRAY);
$shape->getFillFormat()->getPatternFormat()->getForeColor()->setColor(java("java.awt.Color")->YELLOW);
// Guardar el archivo PPTX en disco.
$presentation->save("pattern_fill.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
El resultado:

Relleno con imagen
En PowerPoint, el Relleno con imagen es una opción de formato que permite insertar una imagen dentro de una forma, utilizándola efectivamente como fondo de la forma.
Así es como se usa Aspose.Slides para aplicar un relleno con imagen a una forma:
- Crear una instancia de la clase Presentación.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un AutoShape a la diapositiva.
- Establecer el FillType de la forma a
Picture. - Establecer el modo de relleno de imagen a
Tile(u otro modo preferido). - Crear un objeto PPImage a partir de la imagen que deseas usar.
- Pasar la imagen al método
SlidesPicture.setImage. - Guardar la presentación modificada como archivo PPTX.
Supongamos que tenemos un archivo “lotus.png” con la siguiente imagen:

El siguiente código PHP muestra cómo rellenar una forma con la imagen:
// Instanciar la clase Presentation que representa un archivo de presentación.
$presentation = new Presentation();
try {
// Obtener la primera diapositiva.
$slide = $presentation->getSlides()->get_Item(0);
// Añadir una autoforma del tipo Rectángulo.
$shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 255, 130);
// Establecer el tipo de relleno a Imagen.
$shape->getFillFormat()->setFillType(FillType::Picture);
// Establecer el modo de relleno de imagen.
$shape->getFillFormat()->getPictureFillFormat()->setPictureFillMode(PictureFillMode::Tile);
// Cargar una imagen y agregarla a los recursos de la presentación.
$image = Images::fromFile("lotus.png");
$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();
}
El resultado:

Imagen en mosaico 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 clase PictureFillFormat:
- setPictureFillMode: Establece el modo de relleno de imagen —
TileoStretch. - setTileAlignment: Especifica la alineación de los mosaicos dentro de la forma.
- setTileFlip: Controla si el mosaico se voltea horizontalmente, verticalmente o en ambas direcciones.
- 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 porcentaje.
- setTileScaleY: Define la escala vertical del mosaico como porcentaje.
El siguiente fragmento de código muestra cómo añadir una forma rectangular con relleno de imagen en mosaico y configurar las opciones del mosaico:
// Instanciar la clase Presentation que representa un archivo de presentación.
$presentation = new Presentation();
try {
// Obtener la primera diapositiva.
$firstSlide = $presentation->getSlides()->get_Item(0);
// Añadir una autoforma rectangular.
$shape = $firstSlide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 190, 95);
// Establecer el tipo de relleno de la forma a Imagen.
$shape->getFillFormat()->setFillType(FillType::Picture);
// Cargar la imagen y añadirla a los recursos de la presentación.
$sourceImage = Images::fromFile("lotus.png");
$presentationImage = $presentation->getImages()->addImage($sourceImage);
$sourceImage->dispose();
// Asignar la imagen a la forma.
$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();
}
El resultado:

Relleno de color sólido
En PowerPoint, el Relleno de color sólido es una opción de formato que llena una forma con un solo color uniforme. Este color de fondo plano se aplica sin degradados, texturas ni patrones.
Para aplicar un relleno de color sólido a una forma usando Aspose.Slides, sigue estos pasos:
- Crear una instancia de la clase Presentación.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un AutoShape a la diapositiva.
- Establecer el FillType de la forma a
Solid. - Asignar el color de relleno que prefieras a la forma.
- Guardar la presentación modificada como archivo PPTX.
El siguiente código PHP muestra cómo aplicar un relleno de color sólido a un rectángulo en una diapositiva de PowerPoint:
// Instanciar la clase Presentation que representa un archivo de presentación.
$presentation = new Presentation();
try {
// Obtener la primera diapositiva.
$slide = $presentation->getSlides()->get_Item(0);
// Añadir una autoforma del tipo Rectángulo.
$shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 150, 75);
// Establecer el tipo de relleno a Sólido.
$shape->getFillFormat()->setFillType(FillType::Solid);
// Establecer el color de relleno.
$shape->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->YELLOW);
// Guardar el archivo PPTX en disco.
$presentation->save("solid_color_fill.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
El resultado:

Establecer transparencia
En PowerPoint, cuando aplicas un relleno de color sólido, degradado, imagen o textura a formas, también puedes establecer un nivel de transparencia para controlar la opacidad del relleno. Un valor de transparencia mayor hace que la forma sea más translúcida, permitiendo que el fondo u objetos subyacentes sean parcialmente visibles.
Aspose.Slides permite establecer el nivel de transparencia ajustando el valor alfa del color usado para el relleno. Así es como se hace:
- Crear una instancia de la clase Presentación.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un AutoShape a la diapositiva.
- Establecer el FillType a
Solid. - Usar
Colorpara definir un color con transparencia (el componentealphacontrola la transparencia). - Guardar la presentación.
El siguiente código PHP muestra cómo aplicar un color de relleno transparente a un rectángulo:
// Instanciar la clase Presentation que representa un archivo de presentación.
$presentation = new Presentation();
try {
// Obtener la primera diapositiva.
$slide = $presentation->getSlides()->get_Item(0);
// Añadir una autoforma rectangular sólida.
$solidShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 150, 75);
// Añadir una autoforma rectangular transparente sobre la forma sólida.
$transparentShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 80, 80, 150, 75);
$transparentShape->getFillFormat()->setFillType(FillType::Solid);
$transparentShape->getFillFormat()->getSolidFillColor()->setColor(new java("java.awt.Color", 255, 255, 0, 204));
// Guardar el archivo PPTX en disco.
$presentation->save("shape_transparency.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
El resultado:

Rotar formas
Aspose.Slides 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:
- Crear una instancia de la clase Presentación.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un AutoShape a la diapositiva.
- Establecer la propiedad de rotación de la forma al ángulo deseado.
- Guardar la presentación.
El siguiente código PHP muestra cómo rotar una forma 5 grados:
// Instanciar la clase Presentation que representa un archivo de presentación.
$presentation = new Presentation();
try {
// Obtener la primera diapositiva.
$slide = $presentation->getSlides()->get_Item(0);
// Añadir una autoforma del tipo Rectángulo.
$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();
}
El resultado:

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:
- Instanciar la clase Presentación.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un AutoShape a la diapositiva.
- Configurar el ThreeDFormat de la forma para definir los ajustes de bisel.
- Guardar la presentación.
El siguiente código PHP muestra cómo aplicar efectos de bisel 3D a una forma:
// Crear una instancia de la clase Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Añadir una forma a la diapositiva.
$shape = $slide->getShapes()->addAutoShape(ShapeType::Ellipse, 50, 50, 100, 100);
$shape->getFillFormat()->setFillType(FillType::Solid);
$shape->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
$shape->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
$shape->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.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 resultado:

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:
- Crear una instancia de la clase Presentación.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un AutoShape a la diapositiva.
- Usar setCameraType y setLightType para definir la rotación 3D.
- Guardar la presentación.
El siguiente código PHP muestra cómo aplicar efectos de rotación 3D a una forma:
// Crear una instancia de la clase Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$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 resultado:

Controlar la representación en blanco y negro para formas
El método Shape::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 modo 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 coloración gris, BlackWhite usa solo negro y blanco, Black y White forzan un solo color, Color conserva 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 PHP crea una forma coloreada y hace que aparezca gris en modo de visualización blanco y negro:
use aspose\slides\BlackWhiteMode;
use aspose\slides\FillType;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ShapeType;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 200, 100);
$shape->getFillFormat()->setFillType(FillType::Solid);
$orange = new Java("java.awt.Color", 255, 165, 0);
$shape->getFillFormat()->getSolidFillColor()->setColor($orange);
// Mantener el relleno naranja en modo color, pero representar la forma con coloración 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 mantiene su relleno naranja. En un flujo de trabajo de visualización en blanco y negro, utiliza color gris porque su modo está establecido a Gray. Esto permite conservar una diapositiva a todo color mientras se define una apariencia distinta para impresión, vista previa u otros flujos que respeten 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, tamaño y formato de todas las formas con marcadores de posición en la LayoutSlide a sus valores predeterminados:
$presentation = new Presentation("sample.pptx");
try {
for ($i = 0; $i < java_values($presentation->getSlides()->size()); $i++) {
$slide = $presentation->getSlides()->get_Item($i);
// Restablecer cada forma en la diapositiva que tiene un marcador de posición en el diseño.
$slide->reset();
}
$presentation->save("reset_formatting.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Preguntas frecuentes
¿El formato de las formas afecta 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 forma como colores, efectos y degradados se almacenan como metadatos y prácticamente no añaden tamaño extra.
¿Cómo puedo detectar formas en una diapositiva que compartan un formato idéntico para poder agruparlas?
Compara las propiedades clave de formato de cada forma —relleno, línea y ajustes de efecto. Si todos los valores correspondientes coinciden, trata 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 muestra con los estilos deseados en una presentación 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.