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:
| Indeks | Strana |
|---|---|
0 | Gornji |
1 | Levo |
2 | Donji |
3 | Desno |
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
| ShapeType | Opis |
|---|---|
ShapeType.BENT_CONNECTOR3 | Dva savijanja od 90 stepeni (najčešće za dijagrame u stilu dijagrama toka) |
ShapeType.BENT_CONNECTOR2 | Jedno savijanje od 90 stepeni |
ShapeType.BENT_CONNECTOR4 | Tri savijanja od 90 stepeni |
ShapeType.STRAIGHT_CONNECTOR1 | Direktna ravna linija |
ShapeType.CURVED_CONNECTOR2 | Jedna glatka krivulja |
ShapeType.CURVED_CONNECTOR3 | Krivulja 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);
}