Lavora con le forme in PowerPoint in Python

Vari tipi di diagrammi vengono utilizzati nelle presentazioni PowerPoint per rendere il contenuto più elaborato. Questi diagrammi sono costituiti da forme diverse come ellissi, linee, rettangoli e connettori. In questo articolo imparerai come aggiungere, clonare e rimuovere forme nelle diapositive di PowerPoint a livello di codice in Python.

Libreria Python per lavorare con le forme di PowerPoint

Aspose.Slides for Python via .NET è progettato per creare e manipolare presentazioni PowerPoint dall’interno delle applicazioni Python. Useremo questa libreria per lavorare con le forme nelle diapositive di PowerPoint. Puoi installarlo da PyPI usando il seguente comando pip.

> pip install aspose.slides

Tipi di forme in PowerPoint

Puoi creare una varietà di forme nelle presentazioni PowerPoint usando Aspose.Slides per Python. Le forme più comunemente utilizzate includono:

Aggiungi una forma alle diapositive di PowerPoint in Python

Per aggiungere qualsiasi forma, inclusi ellisse, linea, rettangolo, viene utilizzato il metodo addautoshape(ShapeType, Single, Single, Single, Single) a cui è possibile passare il tipo della forma e altri parametri necessari. L’enumerazione ShapeType viene utilizzata per specificare il tipo della forma. Di seguito sono riportati i passaggi per aggiungere una forma a una diapositiva di PowerPoint in Python.

  1. Crea una presentazione o caricane una esistente usando la classe Presentation.
  2. Ottieni il riferimento della diapositiva desiderata dalla raccolta Presentation.slides.
  3. Aggiungi un’ellisse (o qualsiasi altra forma) usando il metodo addautoshape(ShapeType, Single, Single, Single, Single).
  4. Salva la presentazione usando il metodo Presentation.save(String, SaveFormat).

L’esempio di codice seguente mostra come aggiungere una forma a una diapositiva di PowerPoint in Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create a new presentation
with slides.Presentation() as pres:
    # Get the first slide
    sld = pres.slides[0]

    # Add auto shape of ellipse type
    shp = sld.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 50, 150, 150, 50)

    # Apply some formatting to ellipse shape
    shp.fill_format.fill_type = slides.FillType.SOLID
    shp.fill_format.solid_fill_color.color = drawing.Color.pink

    # Apply some formatting to the line of Ellipse
    shp.line_format.fill_format.fill_type = slides.FillType.SOLID
    shp.line_format.fill_format.solid_fill_color.color = drawing.Color.purple
    shp.line_format.width = 5

    # Save the PPTX file to disk
    pres.save("add-ellipse.pptx", slides.export.SaveFormat.PPTX)

Di seguito è l’ellisse che abbiamo aggiunto utilizzando l’esempio di codice sopra.

Aggiungi una forma a PowerPoint PPT in Python

Collega le forme di PowerPoint con un connettore in Python

Nei diagrammi, forme diverse sono collegate tra loro utilizzando una linea chiamata connettore. Un connettore può essere una linea retta o curva. Vediamo come aggiungere un connettore tra due forme PowerPoint in Python.

  1. Innanzitutto, crea un’istanza della classe Presentation per creare o caricare la presentazione.
  2. Quindi, ottieni il riferimento di una diapositiva utilizzando la raccolta Presentation.slides.
  3. Aggiungi due forme proprio come hai aggiunto nella sezione precedente e ottieni i loro riferimenti.
  4. Crea un connettore usando il metodo addconnector(ShapeType, Single, Single, Single, Single).
  5. Unisci le forme usando le proprietà Connector.startshapeconnectedto e Connector.endshapeconnectedto.
  6. Chiama il metodo Connector.reroute() per creare il percorso di connessione automatico più breve.
  7. Infine, salva la presentazione usando il metodo Presentation.save(string, SaveFormat).

L’esempio di codice seguente mostra come connettere le forme in una diapositiva di PowerPoint in Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation
with slides.Presentation() as presentation:
    # Access shapes collection for selected slide
    shapes = presentation.slides[0].shapes

    # Add ellipse
    ellipse = shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 0, 100, 100, 100)

    # Add auto shape rectangle
    rectangle = shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 300, 100, 100)

    # Add connector to connect shapes
    connector = shapes.add_connector(slides.ShapeType.BENT_CONNECTOR2, 0, 0, 10, 10)

    # Join shapes using connector
    connector.start_shape_connected_to = ellipse
    connector.end_shape_connected_to = rectangle

    # Call reroute to set the automatic shortest path between shapes
    connector.reroute()

    # Save presenation
    presentation.save("add-connector.pptx", slides.export.SaveFormat.PPTX)

Quello che segue è lo screenshot della presentazione dopo aver collegato le forme con un connettore.

Collega le forme di PowerPoint con un connettore in Python

Clona forme PowerPoint in Python

A volte, scegli di clonare le forme invece di crearne una nuova. Per raggiungere questo obiettivo, Aspose.Slides supporta la clonazione delle forme. Di seguito sono riportati i passaggi per clonare una forma in PowerPoint utilizzando Python.

  1. Innanzitutto, usa la classe Presentation per caricare il file di presentazione.
  2. Ottieni il riferimento di una diapositiva dalla raccolta Presentation.slides.
  3. Accedi alle forme delle diapositive di origine e di destinazione dalla raccolta ISlide.shapes.
  4. Clonare le forme dalla raccolta di forme della diapositiva di origine alla diapositiva di destinazione utilizzando il metodo addclone().
  5. Infine, salva il file di presentazione aggiornato.

L’esempio di codice seguente mostra come clonare forme all’interno di diapositive di PowerPoint in Python.

import aspose.slides as slides

# Load presentation
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Access shapes of the source slide
    sourceShapes = presentation.slides[0].shapes

    # Add a new blank slide
    blankLayout = presentation.masters[0].layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
    destSlide = presentation.slides.add_empty_slide(blankLayout)

    # Access shapes of destination slide
    destShapes = destSlide.shapes

    # Clone shapes
    destShapes.add_clone(sourceShapes[0], 50, 150 + sourceShapes[0].height)
    destShapes.add_clone(sourceShapes[0])                 
    destShapes.insert_clone(0, sourceShapes[0], 50, 150)

    # Save file
    presentation.save("clone-shapes.pptx", slides.export.SaveFormat.PPTX)

Rimuovere le forme dalle diapositive di PowerPoint in Python

Puoi anche rimuovere le forme dalle presentazioni di PowerPoint seguendo i passaggi seguenti.

  1. Crea un’istanza della classe Presentation per caricare il file PPT/PPTX.
  2. Accedi alla diapositiva desiderata dalla raccolta Presentation.slides.
  3. Filtra la forma desiderata con un testo specifico usando la proprietà IShape.alternativetext.
  4. Rimuovere la forma utilizzando il metodo ISlide.shapes.remove(IShape).
  5. Infine, salva il file di presentazione aggiornato.

L’esempio di codice seguente mostra come rimuovere forme da una diapositiva di PowerPoint in Python.

# Load presentation
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Get the first slide
    sld = presentation.slides[0]

    alttext = "User Defined"

    # Loop through shapes
    for i in range(len(sld.shapes)):
        # Find shape by alternative text
        ashp = sld.shapes[0]
        if ashp.alternative_text == alttext:
            sld.shapes.remove(ashp)

    # Save file
    presentation.save("remove-shapes.pptx", slides.export.SaveFormat.PPTX)

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare Aspose.Slides per Python senza limitazioni di valutazione.

Conclusione

MS PowerPoint supporta una gamma di forme per creare diversi tipi di diagrammi come i diagrammi di flusso. In questo articolo, abbiamo spiegato come creare forme PowerPoint come ellissi, rettangoli e collegarle usando i connettori in Python. Inoltre, hai imparato a clonare e rimuovere le forme nelle diapositive di PowerPoint in modo programmatico. Puoi esplorare di più su Aspose.Slides per Python usando la documentazione. Inoltre, puoi sentirti libero di farci sapere delle tue domande tramite il nostro forum.

Guarda anche