Εργασία με συνδέσεις Aspose.Slides FOSS για Java

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


Ινδρύσεις Ιστοσελίδας Συνδέσεων

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

Ινδρύσειςπλευρά
0Top
1Αριστερά
2Βάση
3Δίκαια

Προσθήκη ενός συνδετήρα Bent μεταξύ δύο μορφών

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 βαθμούς (πιο συνηθισμένα για διαγράμματα με στυλ flowchart)
ShapeType.BENT_CONNECTOR290 βαθμοί κλίμακας
ShapeType.BENT_CONNECTOR4Τρεις 90 βαθμούς βέλη
ShapeType.STRAIGHT_CONNECTOR1Αμετάβλητη γραμμή
ShapeType.CURVED_CONNECTOR2Μοναδική στυλ κουρβέντα
ShapeType.CURVED_CONNECTOR3Δύο-πεντάλινδρος Κούβας

Top-to-Bottom σύνδεση

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);
}

Δείτε επίσης

 Ελληνικά