Praca z kształtami w programie PowerPoint w języku Python

W prezentacjach programu PowerPoint używane są różne rodzaje diagramów, aby zawartość była bardziej szczegółowa. Diagramy te składają się z różnych kształtów, takich jak elipsy, linie, prostokąty i łączniki. W tym artykule dowiesz się, jak programowo dodawać, klonować i usuwać kształty na slajdach programu PowerPoint w języku Python.

Biblioteka Python do pracy z kształtami programu PowerPoint

Aspose.Slides for Python via .NET jest przeznaczony do tworzenia i manipulowania prezentacjami PowerPoint z poziomu aplikacji Python. Będziemy używać tej biblioteki do pracy z kształtami na slajdach programu PowerPoint. Możesz zainstalować go z PyPI za pomocą następującego polecenia pip.

> pip install aspose.slides

Rodzaje kształtów w programie PowerPoint

Możesz tworzyć różne kształty w prezentacjach PowerPoint za pomocą Aspose.Slides for Python. Do najczęściej używanych kształtów należą:

Dodaj kształt do slajdów programu PowerPoint w Python

Aby dodać dowolny kształt, w tym elipsę, linię, prostokąt, używana jest metoda addautoshape(ShapeType, Single, Single, Single, Single), do której można przekazać typ kształtu i inne niezbędne parametry. Wyliczenie ShapeType służy do określenia typu kształtu. Poniżej przedstawiono kroki dodawania kształtu do slajdu programu PowerPoint w języku Python.

  1. Utwórz prezentację lub załaduj istniejącą za pomocą klasy Presentation.
  2. Uzyskaj odniesienie do żądanego slajdu z kolekcji Presentation.slides.
  3. Dodaj elipsę (lub dowolny inny kształt) za pomocą metody addautoshape(ShapeType, Single, Single, Single, Single).
  4. Zapisz prezentację za pomocą metody Presentation.save(String, SaveFormat).

Poniższy przykładowy kod pokazuje, jak dodać kształt do slajdu programu PowerPoint w języku Python.

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

# Utwórz nową prezentację
with slides.Presentation() as pres:
    # Pobierz pierwszy slajd
    sld = pres.slides[0]

    # Dodaj automatyczny kształt typu elipsy
    shp = sld.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 50, 150, 150, 50)

    # Zastosuj formatowanie do kształtu elipsy
    shp.fill_format.fill_type = slides.FillType.SOLID
    shp.fill_format.solid_fill_color.color = drawing.Color.pink

    # Zastosuj formatowanie do linii Elipsy
    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

    # Zapisz plik PPTX na dysku
    pres.save("add-ellipse.pptx", slides.export.SaveFormat.PPTX)

Poniżej znajduje się wielokropek, który dodaliśmy przy użyciu powyższego przykładowego kodu.

Dodaj kształt do PowerPoint PPT w Python

Połącz kształty programu PowerPoint za pomocą łącznika w języku Python

Na diagramach różne kształty są połączone ze sobą za pomocą linii zwanej łącznikiem. Złączem może być linia prosta lub zakrzywiona. Zobaczmy, jak dodać łącznik między dwoma kształtami programu PowerPoint w języku Python.

  1. Najpierw utwórz instancję klasy Presentation, aby utworzyć lub załadować prezentację.
  2. Następnie uzyskaj odniesienie do slajdu, korzystając z kolekcji Presentation.slides.
  3. Dodaj dwa kształty, tak jak dodałeś w poprzedniej sekcji, i uzyskaj ich odniesienia.
  4. Utwórz łącznik za pomocą metody addconnector(ShapeType, Single, Single, Single, Single).
  5. Połącz kształty za pomocą właściwości Connector.startshapeconnectedto i Connector.endshapeconnectedto.
  6. Wywołaj metodę Connector.reroute() w celu utworzenia najkrótszej automatycznej ścieżki połączenia.
  7. Na koniec zapisz prezentację za pomocą metody Presentation.save(string, SaveFormat).

Poniższy przykładowy kod pokazuje, jak łączyć kształty na slajdzie programu PowerPoint w języku Python.

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

# Utwórz prezentację
with slides.Presentation() as presentation:
    # Uzyskaj dostęp do kolekcji kształtów dla wybranego slajdu
    shapes = presentation.slides[0].shapes

    # Dodaj elipsę
    ellipse = shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 0, 100, 100, 100)

    # Dodaj prostokąt automatycznego kształtu
    rectangle = shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 300, 100, 100)

    # Dodaj łącznik, aby połączyć kształty
    connector = shapes.add_connector(slides.ShapeType.BENT_CONNECTOR2, 0, 0, 10, 10)

    # Połącz kształty za pomocą łącznika
    connector.start_shape_connected_to = ellipse
    connector.end_shape_connected_to = rectangle

    # Wywołaj przekierowanie, aby ustawić automatyczną najkrótszą ścieżkę między kształtami
    connector.reroute()

    # Zapisz prezentację
    presentation.save("add-connector.pptx", slides.export.SaveFormat.PPTX)

Poniżej znajduje się zrzut ekranu prezentacji po połączeniu kształtów łącznikiem.

Połącz kształty programu PowerPoint za pomocą łącznika w języku Python

Klonuj kształty programu PowerPoint w Python

Czasami decydujesz się na klonowanie kształtów zamiast tworzenia nowego. Aby to osiągnąć, Aspose.Slides obsługuje klonowanie kształtów. Poniżej przedstawiono kroki sklonowania kształtu w programie PowerPoint przy użyciu języka Python.

  1. Najpierw użyj klasy Presentation, aby załadować plik prezentacji.
  2. Uzyskaj odniesienie do slajdu z kolekcji Presentation.slides.
  3. Uzyskaj dostęp do źródłowych i docelowych kształtów slajdów z kolekcji ISlide.shapes.
  4. Klonuj kształty ze źródłowej kolekcji kształtów slajdów do slajdu docelowego za pomocą metody addclone().
  5. Na koniec zapisz zaktualizowany plik prezentacji.

Poniższy przykładowy kod pokazuje, jak klonować kształty w slajdach programu PowerPoint w języku Python.

import aspose.slides as slides

# Załaduj prezentację
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Dostęp do kształtów slajdu źródłowego
    sourceShapes = presentation.slides[0].shapes

    # Dodaj nowy pusty slajd
    blankLayout = presentation.masters[0].layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
    destSlide = presentation.slides.add_empty_slide(blankLayout)

    # Dostęp do kształtów slajdu docelowego
    destShapes = destSlide.shapes

    # Kształty klonów
    destShapes.add_clone(sourceShapes[0], 50, 150 + sourceShapes[0].height)
    destShapes.add_clone(sourceShapes[0])                 
    destShapes.insert_clone(0, sourceShapes[0], 50, 150)

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

Usuń kształty ze slajdów programu PowerPoint w Python

Możesz także usuwać kształty z prezentacji programu PowerPoint, wykonując poniższe czynności.

  1. Utwórz instancję klasy Presentation, aby załadować plik PPT/PPTX.
  2. Uzyskaj dostęp do żądanego slajdu z kolekcji Presentation.slides.
  3. Przefiltruj żądany kształt za pomocą określonego tekstu, używając właściwości IShape.alternativetext.
  4. Usuń kształt za pomocą metody ISlide.shapes.remove(IShape).
  5. Na koniec zapisz zaktualizowany plik prezentacji.

Poniższy przykładowy kod pokazuje, jak usunąć kształty ze slajdu programu PowerPoint w języku Python.

# Załaduj prezentację
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Pobierz pierwszy slajd
    sld = presentation.slides[0]

    alttext = "User Defined"

    # Zapętlaj kształty
   for i in range(len(sld.shapes)):
        # Znajdź kształt według tekstu alternatywnego
        ashp = sld.shapes[0]
        if ashp.alternative_text == alttext:
            sld.shapes.remove(ashp)

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

Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby używać Aspose.Slides for Python bez ograniczeń ewaluacyjnych.

Wniosek

MS PowerPoint obsługuje szereg kształtów do tworzenia różnych typów diagramów, takich jak schematy blokowe. W tym artykule omówiliśmy, jak tworzyć kształty PowerPoint, takie jak elipsy, prostokąty, i łączyć je za pomocą łączników w Python. Ponadto nauczyłeś się programowo klonować i usuwać kształty ze slajdów programu PowerPoint. Możesz dowiedzieć się więcej o Aspose.Slides for Python, korzystając z dokumentacji. Możesz też swobodnie informować nas o swoich zapytaniach za pośrednictwem naszego forum.

Zobacz też