Εργασία με Συνδέσμους — Aspose.Slides FOSS for Java

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


Δείκτες Σημείων Σύνδεσης

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

ΔείκτηςΠλευρά
0Κορυφή
1Αριστερά
2Κάτω
3Δεξιά

Προσθήκη Λυγισμένου Συνδέσμου Μεταξύ Δύο Σχημάτων

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);

    // Create two shapes to connect
    var box1 = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 150, 150, 60);
    box1.addTextFrame("Start");

    var box2 = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 400, 150, 150, 60);
    box2.addTextFrame("End");

    // Add a bent connector (position/size are ignored once connected)
    var conn = slide.getShapes().addConnector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10);

    // Connect right side of box1 to left side of box2
    conn.setStartShapeConnectedTo(box1);
    conn.setStartShapeConnectionSiteIndex(3);   // right
    conn.setEndShapeConnectedTo(box2);
    conn.setEndShapeConnectionSiteIndex(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Καμπύλη με διπλή κάμψη

Σύνδεση Από Πάνω Προς Κάτω

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);

    var top = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 250, 80, 200, 60);
    top.addTextFrame("Decision");

    var bottom = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 250, 300, 200, 60);
    bottom.addTextFrame("Action");

    var conn = slide.getShapes().addConnector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10);
    conn.setStartShapeConnectedTo(top);
    conn.setStartShapeConnectionSiteIndex(2);    // bottom of top box
    conn.setEndShapeConnectedTo(bottom);
    conn.setEndShapeConnectionSiteIndex(0);      // top of bottom box

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

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

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ISlide;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);

    var start = addBox(slide, "Start", 260, 60);
    var process = addBox(slide, "Process Data", 260, 180);
    var end = addBox(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);
}

static IAutoShape addBox(ISlide slide, String text, float x, float y) {
    var s = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, x, y, 160, 50);
    s.addTextFrame(text);
    return s;
}

static void connect(ISlide slide, IAutoShape s1, int site1, IAutoShape s2, int site2) {
    var conn = slide.getShapes().addConnector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10);
    conn.setStartShapeConnectedTo(s1);
    conn.setStartShapeConnectionSiteIndex(site1);
    conn.setEndShapeConnectedTo(s2);
    conn.setEndShapeConnectionSiteIndex(site2);
}

Μορφοποίηση Συνδέσμου

Οι συνδέσμοι υποστηρίζουν το ίδιο getLineFormat() ιδιότητες όπως άλλα σχήματα:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.LineDashStyle;
import org.aspose.slides.foss.drawing.Color;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    var box1 = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 150, 150, 60);
    var box2 = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 400, 150, 150, 60);

    var conn = slide.getShapes().addConnector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10);
    conn.setStartShapeConnectedTo(box1);
    conn.setStartShapeConnectionSiteIndex(3);
    conn.setEndShapeConnectedTo(box2);
    conn.setEndShapeConnectionSiteIndex(1);

    // Style the connector line
    conn.getLineFormat().setWidth(2.5);
    conn.getLineFormat().setDashStyle(LineDashStyle.DASH);
    conn.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.fromArgb(0, 0, 139));

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

Δείτε επίσης

 Ελληνικά