Añadir formas de línea a presentaciones en Android

Crear una línea simple

Para añadir una línea simple a una diapositiva seleccionada de la presentación, siga los pasos a continuación:

  • Crear una instancia de la clase Presentation.
  • Obtener la referencia de una diapositiva usando su índice.
  • Añadir un AutoShape de tipo Line mediante el método addAutoShape expuesto por el objeto IShapeCollection.
  • Guardar 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);
    
    // Añadir 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();
}

Crear una línea con forma de flecha

Aspose.Slides for Android via Java también permite a los desarrolladores configurar algunas propiedades de la línea para que resulte más atractiva. Vamos a configurar algunas propiedades de una línea para que tenga forma de flecha. Siga los pasos a continuación:

  • Crear una instancia de la clase Presentation.
  • Obtener la referencia de una diapositiva usando su índice.
  • Añadir un AutoShape de tipo Line mediante el método addAutoShape expuesto por el objeto IShapeCollection.
  • Establecer el Line Style a uno de los estilos ofrecidos por Aspose.Slides for Android via Java.
  • Establecer el ancho de la línea.
  • Establecer el Dash Style de la línea a uno de los estilos ofrecidos por Aspose.Slides for Android via Java.
  • Establecer el Arrow Head Style y la Length del punto de inicio de la línea.
  • Establecer el Arrow Head Style y la Length del punto final de la línea.
  • Guardar 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);

    // Añadir 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();
}

Preguntas frecuentes

¿Puedo convertir una línea normal en un conector para que se “ajuste” a las formas?

No. Una línea normal (un AutoShape de tipo Line) no se convierte automáticamente en un conector. Para que se ajuste a las formas, utilice el tipo Connector dedicado y las corresponding APIs para conexiones.

¿Qué debo hacer si las propiedades de una línea se heredan del tema y resulta difícil determinar los valores finales?

Leer las propiedades efectivas a través de las interfaces ILineFormatEffectiveData/ILineFillFormatEffectiveData —estas ya tienen en cuenta la herencia y los estilos del tema.

¿Puedo bloquear una línea contra la edición (mover, redimensionar)?

Sí. Las formas proporcionan lock objects que le permiten prohibir operaciones de edición.