Práce s tvary v PowerPointu v Pythonu

V prezentacích PowerPoint se používají různé typy diagramů, aby byl obsah propracovanější. Tyto diagramy se skládají z různých tvarů, jako jsou elipsy, čáry, obdélníky a spojnice. V tomto článku se dozvíte, jak přidávat, klonovat a odstraňovat tvary v PowerPointových snímcích programově v Pythonu.

Knihovna Pythonu pro práci s tvary PowerPoint

Aspose.Slides pro Python přes .NET je navržen tak, aby vytvářel a manipuloval s prezentacemi v PowerPointu z aplikací Python. Tuto knihovnu použijeme pro práci s tvary na snímcích PowerPoint. Můžete jej nainstalovat z PyPI pomocí následujícího příkazu pip.

> pip install aspose.slides

Typy tvarů v PowerPointu

Pomocí Aspose.Slides pro Python můžete v prezentacích PowerPoint vytvářet různé tvary. Mezi nejčastěji používané tvary patří:

Přidejte tvar do snímků PowerPoint PPT v Pythonu

Pro přidání libovolného tvaru včetně elipsy, čáry, obdélníku se používá metoda addautoshape(ShapeType, Single, Single, Single, Single), které můžete předat typ tvaru a další potřebné parametry. Výčet ShapeType se používá k určení typu tvaru. Následují kroky pro přidání tvaru na snímek PowerPoint v Pythonu.

  1. Vytvořte prezentaci nebo načtěte existující pomocí třídy Prezentace.
  2. Získejte odkaz na požadovaný snímek z kolekce Presentation.slides.
  3. Přidejte elipsu (nebo jakýkoli jiný tvar) pomocí metody addautoshape (ShapeType, Single, Single, Single, Single).
  4. Uložte prezentaci pomocí metody Presentation.save(String, SaveFormat).

Následující ukázka kódu ukazuje, jak přidat obrazec na snímek PowerPoint v Pythonu.

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

# Vytvořte novou prezentaci
with slides.Presentation() as pres:
    # Získejte první snímek
    sld = pres.slides[0]

    # Přidejte automatický tvar typu elipsy
    shp = sld.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 50, 150, 150, 50)

    # Použijte určité formátování na tvar elipsy
    shp.fill_format.fill_type = slides.FillType.SOLID
    shp.fill_format.solid_fill_color.color = drawing.Color.pink

    # Použijte určité formátování na řádek 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

    # Uložte soubor PPTX na disk
    pres.save("add-ellipse.pptx", slides.export.SaveFormat.PPTX)

Následuje elipsa, kterou jsme přidali pomocí výše uvedeného ukázkového kódu.

Přidejte tvar do PowerPoint PPT v Pythonu

Propojte tvary PowerPointu s konektorem v Pythonu

V diagramech jsou různé tvary spojeny pomocí čáry zvané spojnice. Konektor může být rovná nebo zakřivená čára. Podívejme se, jak přidat spojnici mezi dva PowerPoint tvary v Pythonu.

  1. Nejprve vytvořte instanci třídy Presentation pro vytvoření nebo načtení prezentace.
  2. Poté získejte referenci na snímek pomocí kolekce Presentation.slides.
  3. Přidejte dva tvary stejně jako v předchozí části a získejte jejich reference.
  4. Vytvořte konektor pomocí metody addconnector(ShapeType, Single, Single, Single, Single).
  5. Spojte tvary pomocí vlastností Connector.startshapeconnectedto a Connector.endshapeconnectedto.
  6. Voláním metody Connector.reroute() vytvořte nejkratší cestu automatického připojení.
  7. Nakonec prezentaci uložte pomocí metody Presentation.save(string, SaveFormat).

Následující ukázka kódu ukazuje, jak připojit obrazce na snímku aplikace PowerPoint v Pythonu.

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

# Vytvořte prezentaci
with slides.Presentation() as presentation:
    # Přístup ke kolekci tvarů pro vybraný snímek
    shapes = presentation.slides[0].shapes

    # Přidejte elipsu
    ellipse = shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 0, 100, 100, 100)

    # Přidejte obdélník automatického tvaru
    rectangle = shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 300, 100, 100)

    # Přidejte konektor pro připojení tvarů
    connector = shapes.add_connector(slides.ShapeType.BENT_CONNECTOR2, 0, 0, 10, 10)

    # Spojte tvary pomocí spojky
    connector.start_shape_connected_to = ellipse
    connector.end_shape_connected_to = rectangle

    # Přesměrování volání pro nastavení automatické nejkratší cesty mezi tvary
    connector.reroute()

    # Uložit prezentaci
    presentation.save("add-connector.pptx", slides.export.SaveFormat.PPTX)

Následuje snímek obrazovky prezentace po připojení tvarů pomocí konektoru.

Propojte tvary PowerPointu s konektorem v Pythonu

Klonujte tvary PowerPoint PPT v Pythonu

Někdy se rozhodnete klonovat tvary místo vytváření nových. Aby toho bylo dosaženo, Aspose.Slides podporuje klonování tvaru. Následují kroky ke klonování tvaru v PowerPointu pomocí Pythonu.

  1. Nejprve použijte třídu Presentation k načtení souboru prezentace.
  2. Získejte odkaz na snímek z kolekce Presentation.slides.
  3. Získejte přístup ke zdrojovým a cílovým tvarům snímků z kolekce ISlide.shapes.
  4. Klonujte tvary z kolekce tvarů zdrojového snímku do cílového snímku pomocí metody addclone().
  5. Nakonec uložte aktualizovaný soubor prezentace.

Následující ukázka kódu ukazuje, jak klonovat obrazce v rámci snímků aplikace PowerPoint v Pythonu.

import aspose.slides as slides

# Načíst prezentaci
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Přístup k tvarům zdrojového snímku
    sourceShapes = presentation.slides[0].shapes

    # Přidejte nový prázdný snímek
    blankLayout = presentation.masters[0].layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
    destSlide = presentation.slides.add_empty_slide(blankLayout)

    # Přístup k tvarům cílového snímku
    destShapes = destSlide.shapes

    # Klonové tvary
    destShapes.add_clone(sourceShapes[0], 50, 150 + sourceShapes[0].height)
    destShapes.add_clone(sourceShapes[0])                 
    destShapes.insert_clone(0, sourceShapes[0], 50, 150)

    # Uložení souboru
    presentation.save("clone-shapes.pptx", slides.export.SaveFormat.PPTX)

Odeberte tvary PPT z PowerPoint Slides v Pythonu

Tvary můžete z prezentací aplikace PowerPoint také odebrat podle následujících kroků.

  1. Vytvořte instanci třídy Presentation pro načtení souboru PPT/PPTX.
  2. Přístup k požadovanému snímku z kolekce Presentation.slides.
  3. Filtrujte požadovaný tvar pomocí konkrétního textu pomocí vlastnosti IShape.alternativetext.
  4. Odstraňte tvar pomocí metody ISlide.shapes.remove(IShape).
  5. Nakonec uložte aktualizovaný soubor prezentace.

Následující ukázka kódu ukazuje, jak odebrat obrazce ze snímku aplikace PowerPoint v Pythonu.

# Načíst prezentaci
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Získejte první snímek
    sld = presentation.slides[0]

    alttext = "User Defined"

    # Procházejte tvary
   for i in range(len(sld.shapes)):
        # Najděte tvar podle alternativního textu
        ashp = sld.shapes[0]
        if ashp.alternative_text == alttext:
            sld.shapes.remove(ashp)

    # Uložení souboru
    presentation.save("remove-shapes.pptx", slides.export.SaveFormat.PPTX)

Práce s tvary v PowerPoint PPT – získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci pro manipulaci s tvary aplikace PowerPoint bez omezení hodnocení.

Závěr

MS PowerPoint podporuje řadu tvarů pro vytváření různých typů diagramů, jako jsou vývojové diagramy. V tomto článku jsme se zabývali tím, jak vytvořit PowerPoint tvary, jako jsou elipsy a obdélníky, a jak je propojit pomocí konektorů v Pythonu. Navíc jste se naučili, jak programově klonovat a odstraňovat tvary ze snímků aplikace PowerPoint.

Python PowerPoint API – Přečtěte si více

Více o Aspose.Slides pro Python můžete prozkoumat pomocí dokumentace. Můžete nám také sdělit své dotazy prostřednictvím našeho fóra.

Viz také