Εργασία με Συνδέσμους — 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)

Δείτε επίσης

 Ελληνικά