Add Line Shapes to Presentations in PHP
Create a Plain Line
To add a simple plain line 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 AutoShape of Line 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 line to the first slide of the presentation.
# Instantiate PresentationEx class that represents the PPTX file
$pres = new Presentation();
try {
# Get the first slide
$sld = $pres->getSlides()->get_Item(0);
# Add an AutoShape of type line
$sld->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
# Write the PPTX to Disk
$pres->save("LineShape.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Create an Arrow-Shaped Line
Aspose.Slides for PHP via Java also allows developers to configure some properties of the line to make it look more appealing. Let’s try to configure few properties of a line to make it look like an arrow. Please follow the steps below to do so:
- Create an instance of Presentation class.
- Obtain the reference of a slide by using its Index.
- Add an AutoShape of Line type using addAutoShape method exposed by IShapeCollection object.
- Set the Line Style to one of the styles as offered by Aspose.Slides for PHP via Java.
- Set the Width of the line.
- Set the Dash Style of the line to one of the styles offered by Aspose.Slides for PHP via Java.
- Set the Arrow Head Style and Length of the start point of the line.
- Set the Arrow Head Style and Length of the end point of the line.
- Write the modified presentation as a PPTX file.
# Instantiate PresentationEx class that represents the PPTX file
$pres = new Presentation();
try {
# Get the first slide
$sld = $pres->getSlides()->get_Item(0);
# Add an AutoShape of type line
$shp = $sld->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
# Apply some formatting on the line
$shp->getLineFormat()->setStyle(LineStyle->ThickBetweenThin);
$shp->getLineFormat()->setWidth(10);
$shp->getLineFormat()->setDashStyle(LineDashStyle->DashDot);
$shp->getLineFormat()->setBeginArrowheadLength(LineArrowheadLength->Short);
$shp->getLineFormat()->setBeginArrowheadStyle(LineArrowheadStyle->Oval);
$shp->getLineFormat()->setEndArrowheadLength(LineArrowheadLength->Long);
$shp->getLineFormat()->setEndArrowheadStyle(LineArrowheadStyle->Triangle);
$shp->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
$shp->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(new java("java.awt.Color", PresetColor->Maroon));
# Write the PPTX to Disk
$pres->save("LineShape.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Can I convert a regular line into a connector so it “snaps” to shapes?
No. A regular line (an AutoShape of type Line) does not automatically become a connector. To make it snap to shapes, use the dedicated Connector type and the corresponding APIs for connections.
What should I do if a line’s properties are inherited from the theme and it’s hard to determine the final values?
Read the effective properties through the LineFormatEffectiveData/LineFillFormatEffectiveData—these already account for inheritance and theme styles.
Can I lock a line against editing (moving, resizing)?
Yes. Shapes provide lock objects that let you disallow editing operations.