כיצד להוסיף צורות ל-PowerPoint ב-Python

כיצד להוסיף צורות ל-PowerPoint ב-Python

Aspose.Slides FOSS for Python תומך בהוספת AutoShapes, Tables, Connectors ו-PictureFrames לשקופיות מצגת. כל סוגי הצורות מתווספים דרך האוסף 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: הוסף מסגרת תמונה

הטמע תמונה והוסף אותה לשקף כ-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)

בעיות נפוצות ותיקונים

הצורה מופיעה מחוץ לאזור השקופית הגלוי

המצגות הן 720 × 540 נקודות כברירת מחדל. ערכים של x או y מחוץ לגבולות אלה מציבים את הצורה מחוץ לשקף. שמור על x < 720 ו-y < 540, והבטח את x + width <= 720 ו-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 היעד שלך.

האם ניתן לשנות את מיקום הצורה לאחר שהוספתי אותה?

כן. האובייקט shape המוחזר על ידי 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)

האם גרפים נתמכים?

לא. תרשימים, SmartArt, ואובייקטי OLE אינם מיושמים בגרסה זו ומחזירים NotImplementedError.


ראה גם

 עברית