Python의 PowerPoint에서 도형 작업

PowerPoint 프레젠테이션에서는 다양한 유형의 다이어그램을 사용하여 내용을 보다 정교하게 만듭니다. 이러한 다이어그램은 타원, 선, 직사각형 및 연결선과 같은 다양한 모양으로 구성됩니다. 이 기사에서는 Python에서 프로그래밍 방식으로 PowerPoint 슬라이드의 모양을 추가, 복제 및 제거하는 방법을 배웁니다.

PowerPoint 도형 작업을 위한 Python 라이브러리

.NET을 통한 Python용 Aspose.Slides는 Python 응용 프로그램 내에서 PowerPoint 프레젠테이션을 만들고 조작하도록 설계되었습니다. 이 라이브러리를 사용하여 PowerPoint 슬라이드의 도형 작업을 할 것입니다. 다음 pip 명령을 사용하여 PyPI에서 설치할 수 있습니다.

> pip install aspose.slides

PowerPoint의 도형 유형

Python용 Aspose.Slides를 사용하여 PowerPoint 프레젠테이션에서 다양한 모양을 만들 수 있습니다. 가장 일반적으로 사용되는 모양은 다음과 같습니다.

Python에서 PowerPoint 슬라이드에 도형 추가

타원, 선, 직사각형을 포함한 모든 모양을 추가하려면 모양의 유형 및 기타 필요한 매개변수를 전달할 수 있는 addautoshape(ShapeType, Single, Single, Single, Single) 메서드를 사용합니다. ShapeType 열거형은 모양의 유형을 지정하는 데 사용됩니다. 다음은 Python에서 PowerPoint 슬라이드에 도형을 추가하는 단계입니다.

  1. Presentation 클래스를 사용하여 프레젠테이션을 만들거나 기존 프레젠테이션을 로드합니다.
  2. Presentation.slides 컬렉션에서 원하는 슬라이드의 참조를 가져옵니다.
  3. addautoshape(ShapeType, Single, Single, Single, Single) 메서드를 사용하여 타원(또는 다른 모양)을 추가합니다.
  4. Presentation.save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 Python에서 PowerPoint 슬라이드에 도형을 추가하는 방법을 보여줍니다.

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)

다음은 위의 코드 샘플을 사용하여 추가한 타원입니다.

Python에서 PowerPoint PPT에 모양 추가

Python에서 커넥터로 PowerPoint 셰이프 연결

다이어그램에서 커넥터라는 선을 사용하여 서로 다른 모양이 서로 연결됩니다. 커넥터는 직선 또는 곡선일 수 있습니다. Python에서 두 PowerPoint 셰이프 사이에 커넥터를 추가하는 방법을 살펴보겠습니다.

  1. 먼저 Presentation 클래스의 인스턴스를 만들어 프레젠테이션을 만들거나 로드합니다.
  2. 그런 다음 Presentation.slides 컬렉션을 사용하여 슬라이드의 참조를 가져옵니다.
  3. 이전 섹션에서 추가한 것처럼 두 개의 모양을 추가하고 해당 참조를 가져옵니다.
  4. addconnector(ShapeType, Single, Single, Single, Single) 메서드를 사용하여 커넥터를 만듭니다.
  5. Connector.startshapeconnectedto 및 Connector.endshapeconnectedto 속성을 사용하여 셰이프를 결합합니다.
  6. Connector.reroute() 메서드를 호출하여 최단 자동 연결 경로를 생성합니다.
  7. 마지막으로 Presentation.save(string, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 Python에서 PowerPoint 슬라이드의 도형을 연결하는 방법을 보여줍니다.

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)

다음은 연결선으로 도형을 연결한 후의 프레젠테이션 스크린샷입니다.

Python에서 커넥터로 PowerPoint 셰이프 연결

Python에서 PowerPoint 도형 복제

때로는 새 모양을 만드는 대신 모양을 복제하도록 선택합니다. 이를 달성하기 위해 Aspose.Slides는 모양 복제를 지원합니다. 다음은 Python을 사용하여 PowerPoint에서 모양을 복제하는 단계입니다.

  1. 먼저 Presentation 클래스를 사용하여 프레젠테이션 파일을 로드합니다.
  2. Presentation.slides 컬렉션에서 슬라이드 참조를 가져옵니다.
  3. ISlide.shapes 컬렉션에서 원본 및 대상 슬라이드 모양에 액세스합니다.
  4. addclone() 메서드를 사용하여 원본 슬라이드 모양 컬렉션에서 대상 슬라이드로 모양을 복제합니다.
  5. 마지막으로 업데이트된 프레젠테이션 파일을 저장합니다.

다음 코드 샘플은 Python의 PowerPoint 슬라이드 내에서 모양을 복제하는 방법을 보여줍니다.

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)

Python의 PowerPoint 슬라이드에서 도형 제거

아래 단계에 따라 PowerPoint 프레젠테이션에서 도형을 제거할 수도 있습니다.

  1. 프레젠테이션 클래스의 인스턴스를 만들어 PPT/PPTX 파일을 로드합니다.
  2. Presentation.slides 컬렉션에서 원하는 슬라이드에 액세스합니다.
  3. IShape.alternativetext 속성을 사용하여 특정 텍스트로 원하는 모양을 필터링합니다.
  4. ISlide.shapes.remove(IShape) 메서드를 사용하여 모양을 제거합니다.
  5. 마지막으로 업데이트된 프레젠테이션 파일을 저장합니다.

다음 코드 샘플은 Python의 PowerPoint 슬라이드에서 도형을 제거하는 방법을 보여줍니다.

# 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)

무료 라이선스 받기

평가 제한 없이 Python용 Aspose.Slides를 사용하기 위해 무료 임시 라이선스 받기를 할 수 있습니다.

결론

MS PowerPoint는 순서도와 같은 다양한 유형의 다이어그램을 만들기 위해 다양한 모양을 지원합니다. 이 기사에서는 타원, 직사각형과 같은 PowerPoint 모양을 만들고 Python에서 커넥터를 사용하여 연결하는 방법을 다루었습니다. 또한 프로그래밍 방식으로 PowerPoint 슬라이드에서 모양을 복제하고 제거하는 방법을 배웠습니다. 문서를 사용하여 Python용 Aspose.Slides에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 문의 사항을 자유롭게 알려주세요.

또한보십시오