Añadir formas de línea a presentaciones en Python mediante Java

Descripción general

Aspose.Slides le permite añadir formas de línea a diapositivas de PowerPoint mediante código. Este artículo muestra cómo crear una línea simple y cómo personalizar una línea para que aparezca como una flecha.

Aprenderá cómo añadir una forma de línea a una diapositiva, ajustar su apariencia visual y guardar la presentación actualizada. Los ejemplos se centran en configuraciones prácticas de formato de línea, como estilo, ancho, patrón de guiones, opciones de cabeza de flecha y color de relleno.

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:

  • Cree una instancia de la clase Presentation.
  • Obtenga una referencia a una diapositiva por su índice.
  • Añada una forma de línea mediante el método addAutoShape de la objeto ShapeCollection.
  • Guarde la presentación modificada como un archivo PPTX.

El siguiente ejemplo añade una línea a la primera diapositiva de la presentación:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, ShapeType

# Instanciar la clase Presentation que representa el archivo PPTX.
presentation = Presentation()
try:
    # Obtener la primera diapositiva.
    slide = presentation.getSlides().get_Item(0)

    # Añadir una forma de línea.
    slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0)

    # Guardar el archivo PPTX en disco.
    presentation.save("LineShape.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Crear una línea con forma de flecha

Aspose.Slides for Python via Java también permite a los desarrolladores configurar propiedades de línea para que una línea resulte más atractiva. Para configurar una línea con forma de flecha, siga los pasos a continuación:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import FillType, LineArrowheadLength, LineArrowheadStyle, LineDashStyle, LineStyle, Presentation, PresetColor, SaveFormat, ShapeType

# Instanciar la clase Presentation que representa el archivo PPTX.
presentation = Presentation()
try:
    # Obtener la primera diapositiva.
    slide = presentation.getSlides().get_Item(0)

    # Añadir una forma de línea.
    line = slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0)

    # Aplicar formato a la línea.
    line_format = line.getLineFormat()
    line_format.setStyle(LineStyle.ThickBetweenThin)
    line_format.setWidth(10)

    line_format.setDashStyle(LineDashStyle.DashDot)

    line_format.setBeginArrowheadLength(LineArrowheadLength.Short)
    line_format.setBeginArrowheadStyle(LineArrowheadStyle.Oval)

    line_format.setEndArrowheadLength(LineArrowheadLength.Long)
    line_format.setEndArrowheadStyle(LineArrowheadStyle.Triangle)

    line_format.getFillFormat().setFillType(FillType.Solid)
    line_format.getFillFormat().getSolidFillColor().setPresetColor(PresetColor.Maroon)

    # Guardar el archivo PPTX en disco.
    presentation.save("LineShape.pptx", SaveFormat.Pptx)
finally:
    presentation.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 APIs correspondientes para conexiones.

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

Lea las propiedades efectivas de la línea y su relleno; estas ya tienen en cuenta la herencia y los estilos del tema.

¿Puedo bloquear una línea contra la edición (mover, cambiar el tamaño)?

Sí. Las formas proporcionan objetos de bloqueo que le permiten denegar operaciones de edición.