Añadir formas de línea a presentaciones en Java
Create a Plain Line
Para agregar una línea simple a una diapositiva seleccionada de la presentación, siga los pasos a continuación:
- Cree una instancia de Presentation class.
- Obtenga la referencia de una diapositiva usando su Index.
- Añada un AutoShape de tipo Line usando el método addAutoShape expuesto por el objeto IShapeCollection.
- Guarde la presentación modificada como un archivo PPTX.
En el ejemplo que se muestra a continuación, hemos añadido una línea a la primera diapositiva de la presentación.
// Instanciar la clase PresentationEx que representa el archivo PPTX
Presentation pres = new Presentation();
try {
// Obtener la primera diapositiva
ISlide sld = pres.getSlides().get_Item(0);
// Agregar un AutoShape de tipo línea
sld.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
// Guardar el PPTX en disco
pres.save("LineShape.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Create an Arrow-Shaped Line
Aspose.Slides for Java también permite a los desarrolladores configurar algunas propiedades de la línea para que tenga un aspecto más atractivo. Intentemos configurar algunas propiedades de la línea para que parezca una flecha. Siga los pasos a continuación:
- Cree una instancia de Presentation class.
- Obtenga la referencia de una diapositiva usando su Index.
- Añada un AutoShape de tipo Line usando el método addAutoShape expuesto por el objeto IShapeCollection.
- Establezca el Line Style a uno de los estilos ofrecidos por Aspose.Slides for Java.
- Defina el Width de la línea.
- Establezca el Dash Style de la línea a uno de los estilos ofrecidos por Aspose.Slides for Java.
- Establezca el Arrow Head Style y el Length del punto de inicio de la línea.
- Establezca el Arrow Head Style y el Length del punto final de la línea.
- Guarde la presentación modificada como un archivo PPTX.
// Instanciar la clase PresentationEx que representa el archivo PPTX
Presentation pres = new Presentation();
try {
// Obtener la primera diapositiva
ISlide sld = pres.getSlides().get_Item(0);
// Agregar un AutoShape de tipo línea
IAutoShape shp = sld.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
// Aplicar algo de formato a la línea
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 Color(PresetColor.Maroon));
// Guardar el PPTX en disco
pres.save("LineShape.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Can I convert a regular line into a connector so it “snaps” to shapes?
No. Una línea regular (un AutoShape de tipo Line) no se convierte automáticamente en un conector. Para que se ajuste a las formas, utilice el tipo dedicado Connector y las corresponding APIs para conexiones.
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 a través de las interfaces ILineFormatEffectiveData/ILineFillFormatEffectiveData; estas ya tienen en cuenta la herencia y los estilos del tema.
Can I lock a line against editing (moving, resizing)?
Sí. Las formas proporcionan lock objects que permiten disallow editing operations.