PowerPoint에서 형식을 추가하는 방법 Python

PowerPoint에서 형식을 추가하는 방법 Python

Aspose.Slides FOSS for Python supports adding AutoShapes, Tables, Connectors, and PictureFrames to presentation slides. All shape types are added through the slide.shapes 컬렉션 입니다.

단계별 가이드

단계 1 : 패키지를 설치합니다.

pip install aspose-slides-foss

설치를 확인하십시오 :

import aspose.slides_foss as slides
print("Ready")

단계 2 : 프레젠테이션 만들기

항상 사용하기 Presentation 컨텍스트 매니저로서의 역할을 합니다.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]
    # ... add shapes ...
    prs.save("output.pptx", SaveFormat.PPTX)

단계 3: AutoShape를 추가합니다.

slide.shapes.add_auto_shape(shape_type, x, y, width, height) 각각의 위치와 크기에 모양을 배치합니다 (모든 점). ShapeType 끊임없이 형태를 선택합니다.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    # Rectangle
    rect = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
    rect.add_text_frame("Rectangle shape")

    # Ellipse
    ellipse = slide.shapes.add_auto_shape(ShapeType.ELLIPSE, 400, 50, 200, 100)
    ellipse.add_text_frame("Ellipse shape")

    prs.save("autoshapes.pptx", SaveFormat.PPTX)

4단계 : 테이블을 추가합니다.

slide.shapes.add_table(x, y, col_widths, row_heights) 지정된 위치에 테이블을 만들 수 있습니다.열 폭과 행 높이는 포인트 값 목록입니다.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    col_widths = [150.0, 150.0, 150.0]
    row_heights = [40.0, 40.0, 40.0]
    table = slide.shapes.add_table(50, 200, col_widths, row_heights)

    # Set header row text
    headers = ["Product", "Units", "Revenue"]
    for col, text in enumerate(headers):
        table.rows[0][col].text_frame.text = text

    # Set data rows
    rows = [
        ["Widget A", "120", "$2,400"],
        ["Widget B", "85", "$1,700"],
    ]
    for row_idx, row_data in enumerate(rows):
        for col, text in enumerate(row_data):
            table.rows[row_idx + 1][col].text_frame.text = text

    prs.save("table.pptx", SaveFormat.PPTX)

5단계: 커넥터를 추가합니다.

연결기는 두 개의 형태를 시각적으로 연결합니다.이 형식을 먼저 만들고, 그 다음에 연결기를 추가하고 시작 및 끝 연결 포인트를 설정합니다.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    box1 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 100, 150, 60)
    box1.add_text_frame("Start")

    box2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 350, 100, 150, 60)
    box2.add_text_frame("End")

    conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
    conn.start_shape_connected_to = box1
    conn.start_shape_connection_site_index = 3  # right side of box1
    conn.end_shape_connected_to = box2
    conn.end_shape_connection_site_index = 1    # left side of box2

    prs.save("connector.pptx", SaveFormat.PPTX)

연결 사이트 지수는 0-3로 숫자됩니다 : 오른쪽 = 0, 왼쪽=1, 바닥=2, 오르기=3.


단계 6 : 그림 프레임을 추가합니다.

그림을 삽입하고 슬라이드에 그것을 추가하여 A로 PictureFrame.먼저 이미지 바이트를 읽고, 프레젠테이션의 이미지 컬렉션에 추가하고, 그 후에 프림을 만듭니다.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    with open("logo.png", "rb") as f:
        image_data = f.read()

    image = prs.images.add_image(image_data)

    slide = prs.slides[0]
    slide.shapes.add_picture_frame(
        ShapeType.RECTANGLE,  # bounding shape type
        50, 50,               # x, y in points
        200, 150,             # width, height in points
        image
    )

    prs.save("with-image.pptx", SaveFormat.PPTX)

일반적인 문제와 해결책

모양은 눈에 띄는 슬라이드 영역 밖에서 나타납니다.

슬라이드는 기본적으로 960 × 540 포인트입니다. x 또는 y 그 밖의 한계를 넘어서서 형태가 스리드에 떨어져 있습니다. x < 960 그리고 y < 540,그리고 보장하기 위해서 x + width <= 960 그리고 y + height <= 540.

AttributeError: 'NoneType' object has no attribute 'text_frame'

add_auto_shape() 이 바로 쪽으로 돌아오는 경우, 그가 보이는 None, 귀하가 환불 값을 제거하지 않는지 확인합니다.

테이블 셀 텍스트는 배정 후에 비어있다.

올바른 재산은 .text_frame.text (아니오 아니요) .text 셀에 접근하는 것과 같은 세포의 접속을 table.rows[row_index][col_index].text_frame.text = "value".


자주 묻는 질문들

슬라이드에 얼마나 많은 모양을 추가할 수 있습니까?

실용적인 제한은 파일 크기와 목표 PPTX 시청자의 배포 능력에 달려 있습니다.

추가 후에 모양의 위치를 변경할 수 있습니까?

예. 형식으로 반환된 물체는 add_auto_shape()x, y, width,그리고, 그리고 height 당신이 설정할 수있는 속성 :

shape.x = 100
shape.y = 200
shape.width = 400
shape.height = 80

나는 모양의 외관 (경계) 색상을 설정할 수 있습니까?

예, 와이프 shape.line_format:

from aspose.slides_foss.drawing import Color
shape.line_format.fill_format.solid_fill_color.color = Color.from_argb(255, 200, 0, 0)

그래픽이 지원되는가?

No. 차트, SmartArt 및 OLE 개체는 이 에디션에서 구현되지 않으며 업그레이드합니다. NotImplementedError.


또한 보기

 한국어