Πώς να συνδέσετε σχήματα με συνδέσμους στην Python

Πώς να συνδέσετε σχήματα με συνδέσμους στην Python

Οι συνδέσμοι στο Aspose.Slides FOSS είναι σχήματα γραμμής που συνδέονται σε σημεία σύνδεσης σε άλλα σχήματα. Όταν μετακινείτε ένα συνδεδεμένο σχήμα, το άκρο του συνδέσμου μετακινείται μαζί του. Ο πιο κοινός τύπος συνδέσμου είναι BENT_CONNECTOR3, ο οποίος διαδρομεί γύρω από εμπόδια με μία μόνο λυγίδα.


Προαπαιτούμενα

pip install aspose-slides-foss

Δείκτες Τοποθεσίας Σύνδεσης

Κάθε σχήμα έχει τέσσερις αριθμημένες θέσεις σύνδεσης:

ΔείκτηςΘέση
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]

    # Add two rectangles
    box1 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 200, 200, 100)
    box2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 450, 200, 200, 100)

    box1.add_text_frame("Start")
    box2.add_text_frame("End")

    # Add a bent connector (initial bounds are overwritten by the connection)
    conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)

    # Connect right side of box1 (site 3) to left side of box2 (site 1)
    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

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

Τα όρια του κράτηματος (0, 0, 10, 10) που περνιούνται στο add_connector αγνοούνται μόλις οριστούν τα άκρα σύνδεσης· το PowerPoint ανακατευθύνει τον σύνδεσμο προς τα συνδεδεμένα σχήματα.


Τύποι Συνδέσμων

from aspose.slides_foss import ShapeType

# Straight line
ShapeType.STRAIGHT_CONNECTOR1

# Single elbow (L-shape)
ShapeType.BENT_CONNECTOR2

# Double elbow (Z-shape): most common
ShapeType.BENT_CONNECTOR3

# Curved connector
ShapeType.CURVED_CONNECTOR3

Στυλ της Γραμμής Συνδέσμου

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, 180, 80)
    box2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 500, 300, 180, 80)

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

    # Style: dashed blue line, 2 pt width
    lf = conn.line_format
    lf.width = 2.0
    lf.fill_format.solid_fill_color.color = Color.blue
    lf.dash_style = LineDashStyle.DASH

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

Διάγραμμα ροής με πολλαπλούς συνδέσμους

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]

    # Three-step flowchart
    step1 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 350, 50, 200, 70)
    step2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 350, 220, 200, 70)
    step3 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 350, 390, 200, 70)

    step1.add_text_frame("Step 1")
    step2.add_text_frame("Step 2")
    step3.add_text_frame("Step 3")

    def connect_vertical(shapes, top_shape, bottom_shape):
        conn = shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
        conn.start_shape_connected_to = top_shape
        conn.start_shape_connection_site_index = 2   # bottom
        conn.end_shape_connected_to = bottom_shape
        conn.end_shape_connection_site_index = 0     # top
        return conn

    connect_vertical(slide.shapes, step1, step2)
    connect_vertical(slide.shapes, step2, step3)

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

Ανάγνωση Ιδιοτήτων Συνδέσμου

from aspose.slides_foss import Connector
import aspose.slides_foss as slides

with slides.Presentation("connected.pptx") as prs:
    for shape in prs.slides[0].shapes:
        if isinstance(shape, Connector):
            start = shape.start_shape_connected_to
            end = shape.end_shape_connected_to
            print(f"Connector: {getattr(start, 'name', '?')}{getattr(end, 'name', '?')}")

Δείτε επίσης

 Ελληνικά