Rad sa konektorima — Aspose.Slides FOSS za Java

Konektori su oblici koji vizuelno povezuju dva druga oblika linijom. Aspose.Slides FOSS za Java podržava savijene, ravne i zakrivljene konektore. Tačke spajanja na obliku se identifikuju cijelim brojem indeksi lokacija spajanja.


Indeksi tačaka povezivanja

Svaki oblik izlaže četiri standardne tačke povezivanja:

IndeksStrana
0Gornji
1Levo
2Donji
3Desno

Dodavanje savijenog konektora između dva oblika

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

Tipovi oblika konektora

ShapeTypeOpis
ShapeType.BENT_CONNECTOR3Dva savijanja od 90 stepeni (najčešće za dijagrame u stilu dijagrama toka)
ShapeType.BENT_CONNECTOR2Jedno savijanje od 90 stepeni
ShapeType.BENT_CONNECTOR4Tri savijanja od 90 stepeni
ShapeType.STRAIGHT_CONNECTOR1Direktna ravna linija
ShapeType.CURVED_CONNECTOR2Jedna glatka krivulja
ShapeType.CURVED_CONNECTOR3Krivulja sa dva savijanja

Povezivanje odozgo prema dole

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

Dijagram toka sa više konektora

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

Formatiranje konektora

Konektori podržavaju isto getLineFormat() svojstva kao i ostalih oblika:

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

Vidi takođe

 Српски