עבודה עם מחברים — Aspose.Slides FOSS עבור Python

מחברים הם צורות שמקשרות חזותית בין שתי צורות אחרות בקו. Aspose.Slides FOSS עבור Python תומך במחברים כפופים, ישרים ועקמומיים. נקודות החיבור על צורה מזוהות על ידי מספר שלם אינדקסים של אתרי חיבור.


אינדקסי אתרי חיבור

כל צורה מציגה ארבעה אתרי חיבור סטנדרטיים:

אינדקסצד
0למעלה
1שמאלה
2למטה
3ימינה

הוספת מחבר כפוף בין שתי צורות

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

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

    # Create two shapes to connect
    box1 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 150, 150, 60)
    box1.add_text_frame("Start")

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

    # Add a bent connector (position/size are ignored once connected)
    conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)

    # Connect right side of box1 → left side of box2
    conn.start_shape_connected_to = box1
    conn.start_shape_connection_site_index = 3   # right
    conn.end_shape_connected_to = box2
    conn.end_shape_connection_site_index = 1     # left

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

סוגי צורות מחבר

ShapeTypeתיאור
ShapeType.BENT_CONNECTOR3שני קפיצות של 90° (הנפוצות ביותר לדיאגרמות בסגנון תרשים זרימה)
ShapeType.BENT_CONNECTOR2קפיצה אחת של 90°
ShapeType.BENT_CONNECTOR4שלוש קפיצות של 90°
ShapeType.STRAIGHT_CONNECTOR1קו ישר ישיר
ShapeType.CURVED_CONNECTOR2עיקול חלק יחיד
ShapeType.CURVED_CONNECTOR3עיקול כפול קפיצה

חיבור מלמעלה למטה

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

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

    top = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 250, 80, 200, 60)
    top.add_text_frame("Decision")

    bottom = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 250, 300, 200, 60)
    bottom.add_text_frame("Action")

    conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
    conn.start_shape_connected_to = top
    conn.start_shape_connection_site_index = 2    # bottom of top box
    conn.end_shape_connected_to = bottom
    conn.end_shape_connection_site_index = 0      # top of bottom box

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

תרשים זרימה עם מחברים מרובים

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


def add_box(slide, text, x, y, w=160, h=50):
    s = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, x, y, w, h)
    s.add_text_frame(text)
    return s


def connect(slide, s1, site1, s2, site2):
    conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
    conn.start_shape_connected_to = s1
    conn.start_shape_connection_site_index = site1
    conn.end_shape_connected_to = s2
    conn.end_shape_connection_site_index = site2
    return conn


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

    start = add_box(slide, "Start", 260, 60)
    process = add_box(slide, "Process Data", 260, 180)
    end = add_box(slide, "End", 260, 300)

    connect(slide, start, 2, process, 0)    # start → process (bottom to top)
    connect(slide, process, 2, end, 0)      # process → end (bottom to top)

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

עיצוב מחבר

המחברים תומכים באותו line_format תכונות כמו צורות אחרות:

from aspose.slides_foss import ShapeType, LineDashStyle
from aspose.slides_foss.drawing import Color
import aspose.slides_foss as slides
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, 150, 150, 60)
    box2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 400, 150, 150, 60)

    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
    conn.end_shape_connected_to = box2
    conn.end_shape_connection_site_index = 1

    # Style the connector line
    conn.line_format.width = 2.5
    conn.line_format.dash_style = LineDashStyle.DASH
    conn.line_format.fill_format.solid_fill_color.color = Color.dark_blue

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

ראה גם

 עברית