Add Rectangles to Presentations in PHP
Add a Rectangle to a Slide
To add a simple rectangle to a selected slide of the presentation, please follow the steps below:
- Create an instance of Presentation class.
- Obtain the reference of a slide by using its Index.
- Add an IAutoShape of Rectangle type using addAutoShape method exposed by IShapeCollection object.
- Write the modified presentation as a PPTX file.
In the example given below, we have added a simple rectangle to the first slide of the presentation.
# Instantiate Prseetation class that represents the PPTX
$pres = new Presentation();
try {
# Get the first slide
$sld = $pres->getSlides()->get_Item(0);
# Add AutoShape of ellipse type
$shp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 150, 150, 50);
# Write the PPTX file to disk
$pres->save("RecShp1.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Add a Formatted Rectangle to a Slide
To add a formatted rectangle to a slide, please follow the steps below:
- Create an instance of Presentation class.
- Obtain the reference of a slide by using its Index.
- Add an IAutoShape of Rectangle type using addAutoShape method exposed by IShapeCollection object.
- Set the Fill Type of the Rectangle to Solid.
- Set the Color of the Rectangle using SolidFillColor.setColor method as exposed by IFillFormat object associated with the IShape object.
- Set the Color of the lines of the Rectangle.
- Set the Width of the lines of the Rectangle.
- Write the modified presentation as PPTX file.
The above steps are implemented in the example given below.
# Instantiate Prseetation class that represents the PPTX
$pres = new Presentation();
try {
# Get the first slide
$sld = $pres->getSlides()->get_Item(0);
# Add AutoShape of ellipse type
$shp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 150, 150, 50);
# Apply some formatting to ellipse shape
$shp->getFillFormat()->setFillType(FillType::Solid);
$shp->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GRAY);
# Apply some formatting to the line of Ellipse
$shp->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
$shp->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);
$shp->getLineFormat()->setWidth(5);
# Write the PPTX file to disk
$pres->save("RecShp2.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
How do I add a rectangle with rounded corners?
Use the rounded-corner shape type and adjust the corner radius in the shape’s properties; rounding can also be applied per corner via geometry adjustments.
How do I fill a rectangle with an image (texture)?
Select the picture fill type, provide the image source, and configure stretching/tiling modes.
Can a rectangle have shadow and glow?
Yes. Outer/inner shadow, glow, and soft edges are available with adjustable parameters.
Can I turn a rectangle into a button with a hyperlink?
Yes. Assign a hyperlink to the shape click (jump to a slide, file, web address, or e-mail).
How can I protect a rectangle from moving and changes?
Use shape locks: you can forbid moving, resizing, selection, or text editing to preserve the layout.
Can I convert a rectangle to a raster image or SVG?
Yes. You can render the shape to an image with a specified size/scale or export it as SVG for vector use.
How do I quickly get the actual (effective) properties of a rectangle considering theme and inheritance?
Use the shape’s effective properties: the API returns computed values that account for theme styles, layout, and local settings, simplifying formatting analysis.