Làm việc với Shapes trong PowerPoint bằng Python

Nhiều loại sơ đồ khác nhau được sử dụng trong các bài thuyết trình PowerPoint để làm cho nội dung trở nên chi tiết hơn. Những sơ đồ này bao gồm các hình dạng khác nhau như hình elip, đường thẳng, hình chữ nhật và các đầu nối. Trong bài viết này, bạn sẽ học cách thêm, sao chép và loại bỏ các hình dạng trong các trang chiếu PowerPoint được lập trình bằng Python.

Thư viện Python để làm việc với PowerPoint Shapes

Aspose.Slides for Python qua .NET được thiết kế để tạo và thao tác các bản trình bày PowerPoint từ bên trong các ứng dụng Python. Chúng tôi sẽ sử dụng thư viện này để làm việc với các hình dạng trong các trang chiếu PowerPoint. Bạn có thể cài đặt nó từ PyPI bằng lệnh pip sau.

> pip install aspose.slides

Các loại hình trong PowerPoint

Bạn có thể tạo nhiều hình dạng khác nhau trong bản trình bày PowerPoint bằng cách sử dụng Aspose.Slides for Python. Các hình dạng được sử dụng phổ biến nhất bao gồm:

Thêm hình dạng vào trang trình bày PowerPoint bằng Python

Để thêm bất kỳ hình dạng nào bao gồm hình elip, đường thẳng, hình chữ nhật, phương pháp addautoshape (ShapeType, Single, Single, Single, Single) được sử dụng để bạn có thể truyền loại hình và các tham số cần thiết khác. Enum ShapeType được sử dụng để chỉ định loại hình dạng. Sau đây là các bước để thêm hình dạng vào trang chiếu PowerPoint bằng Python.

  1. Tạo bản trình bày hoặc tải bản trình bày hiện có bằng lớp Trình bày.
  2. Nhận tham chiếu của trang trình bày mong muốn từ bộ sưu tập Presentation.slides.
  3. Thêm một hình Elip (hoặc bất kỳ hình dạng nào khác) bằng cách sử dụng phương pháp addautoshape (ShapeType, Single, Single, Single, Single).
  4. Lưu bản trình bày bằng phương pháp Presentation.save (String, SaveFormat).

Mẫu mã sau đây cho thấy cách thêm hình dạng vào trang chiếu PowerPoint bằng Python.

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

# Tạo một bản trình bày mới
with slides.Presentation() as pres:
    # Tải trang trình bày đầu tiên
    sld = pres.slides[0]

    # Thêm hình dạng tự động của loại hình elip
    shp = sld.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 50, 150, 150, 50)

    # Áp dụng một số định dạng cho hình elip
    shp.fill_format.fill_type = slides.FillType.SOLID
    shp.fill_format.solid_fill_color.color = drawing.Color.pink

    # Áp dụng một số định dạng cho đường 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

    # Lưu tệp PPTX vào đĩa
    pres.save("add-ellipse.pptx", slides.export.SaveFormat.PPTX)

Sau đây là hình elip mà chúng tôi đã thêm bằng cách sử dụng mẫu mã ở trên.

Thêm hình dạng vào PowerPoint PPT bằng Python

Kết nối Hình dạng PowerPoint với Trình kết nối bằng Python

Trong sơ đồ, các hình dạng khác nhau được kết nối với nhau bằng một đường được gọi là đầu nối. Một đầu nối có thể là một đường thẳng hoặc đường cong. Hãy xem cách thêm một trình kết nối giữa hai hình dạng PowerPoint trong Python.

  1. Đầu tiên, tạo một thể hiện của lớp Presentation để tạo hoặc tải bản trình bày.
  2. Sau đó, lấy tham chiếu của một trang chiếu bằng bộ sưu tập Presentation.slides.
  3. Thêm hai hình dạng giống như bạn đã thêm trong phần trước và lấy tham chiếu của chúng.
  4. Tạo trình kết nối bằng phương pháp addconnector (ShapeType, Single, Single, Single, Single).
  5. Nối các hình dạng bằng thuộc tính Connector.startshapeconnectedto và Connector.endshapeconnectedto.
  6. Gọi phương thức Connector.reroute() để tạo đường dẫn kết nối tự động ngắn nhất.
  7. Cuối cùng, lưu bản trình bày bằng phương thức Presentation.save (string, SaveFormat).

Mẫu mã sau đây cho thấy cách kết nối các hình dạng trong một trang chiếu PowerPoint bằng Python.

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

# Tạo bản trình bày
with slides.Presentation() as presentation:
    # Truy cập bộ sưu tập hình dạng cho trang trình bày đã chọn
    shapes = presentation.slides[0].shapes

    # Thêm hình elip
    ellipse = shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 0, 100, 100, 100)

    # Thêm hình chữ nhật hình dạng tự động
    rectangle = shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 300, 100, 100)

    # Thêm trình kết nối để kết nối các hình dạng
    connector = shapes.add_connector(slides.ShapeType.BENT_CONNECTOR2, 0, 0, 10, 10)

    # Nối các hình dạng bằng trình kết nối
    connector.start_shape_connected_to = ellipse
    connector.end_shape_connected_to = rectangle

    # Gọi định tuyến lại để đặt đường đi ngắn nhất tự động giữa các hình dạng
    connector.reroute()

    # Lưu phần trình bày trước
    presentation.save("add-connector.pptx", slides.export.SaveFormat.PPTX)

Sau đây là ảnh chụp màn hình của bản trình bày sau khi kết nối các hình dạng bằng một trình kết nối.

Kết nối Hình dạng PowerPoint với Trình kết nối bằng Python

Sao chép các hình dạng PowerPoint bằng Python

Đôi khi, bạn chọn sao chép các hình dạng thay vì tạo một hình mới. Để đạt được điều đó, Aspose.Slides hỗ trợ nhân bản hình dạng. Sau đây là các bước để sao chép một hình dạng trong PowerPoint bằng Python.

  1. Đầu tiên, sử dụng lớp Trình bày để tải tệp bản trình bày.
  2. Nhận tham chiếu của một trang chiếu từ bộ sưu tập Presentation.slides.
  3. Truy cập các hình dạng trang chiếu nguồn và đích từ bộ sưu tập ISlide.shapes.
  4. Sao chép các hình dạng từ bộ sưu tập hình dạng trang chiếu nguồn sang trang chiếu đích bằng phương thức addclone().
  5. Cuối cùng, lưu tệp bản trình bày đã cập nhật.

Mẫu mã sau đây cho thấy cách sao chép các hình dạng trong các trang chiếu PowerPoint bằng Python.

import aspose.slides as slides

# Tải bản trình bày
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Truy cập các hình dạng của trang trình bày nguồn
    sourceShapes = presentation.slides[0].shapes

    # Thêm một trang trình bày trống mới
    blankLayout = presentation.masters[0].layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
    destSlide = presentation.slides.add_empty_slide(blankLayout)

    # Truy cập các hình dạng của trang trình bày đích
    destShapes = destSlide.shapes

    # Nhân bản hình dạng
    destShapes.add_clone(sourceShapes[0], 50, 150 + sourceShapes[0].height)
    destShapes.add_clone(sourceShapes[0])                 
    destShapes.insert_clone(0, sourceShapes[0], 50, 150)

    # Lưu tập tin
    presentation.save("clone-shapes.pptx", slides.export.SaveFormat.PPTX)

Xóa Hình dạng khỏi Trang trình bày PowerPoint bằng Python

Bạn cũng có thể xóa hình dạng khỏi bản trình bày PowerPoint bằng cách làm theo các bước bên dưới.

  1. Tạo một phiên bản của lớp Trình bày để tải tệp PPT / PPTX.
  2. Truy cập trang trình bày mong muốn từ bộ sưu tập Presentation.slides.
  3. Lọc hình dạng mong muốn với một văn bản cụ thể bằng cách sử dụng thuộc tính IShape.alternativetext.
  4. Loại bỏ hình dạng bằng phương pháp ISlide.shapes.remove (IShape).
  5. Cuối cùng, lưu tệp bản trình bày đã cập nhật.

Mẫu mã sau đây cho thấy cách xóa hình dạng khỏi trang chiếu PowerPoint bằng Python.

# Tải bản trình bày
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Tải trang trình bày đầu tiên
    sld = presentation.slides[0]

    alttext = "User Defined"

    # Lặp qua các hình dạng
   for i in range(len(sld.shapes)):
        # Tìm hình dạng bằng văn bản thay thế
        ashp = sld.shapes[0]
        if ashp.alternative_text == alttext:
            sld.shapes.remove(ashp)

    # Lưu tập tin
    presentation.save("remove-shapes.pptx", slides.export.SaveFormat.PPTX)

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng Aspose.Slides for Python mà không có giới hạn đánh giá.

Sự kết luận

MS PowerPoint hỗ trợ một loạt các hình dạng để tạo các loại sơ đồ khác nhau, chẳng hạn như biểu đồ luồng. Trong bài viết này, chúng tôi đã đề cập đến cách tạo các hình dạng PowerPoint như hình elip, hình chữ nhật và kết nối chúng bằng cách sử dụng trình kết nối trong Python. Hơn nữa, bạn đã học cách sao chép và loại bỏ các hình dạng trong các trang chiếu PowerPoint theo chương trình. Bạn có thể khám phá thêm về Aspose.Slides for Python bằng tài liệu. Ngoài ra, bạn có thể cho chúng tôi biết về các thắc mắc của bạn qua diễn đàn của chúng tôi.

Xem thêm