Lucrul cu Conectori — Aspose.Slides FOSS pentru Java
Conectorii sunt forme care leagă vizual alte două forme cu o linie. Aspose.Slides FOSS pentru Java suportă conectori îndoiți, drepți și curbați. Punctele de conectare pe o formă sunt identificate prin numere întregi indecși de site de conectare.
Indecși de Site de Conexiune
Fiecare formă expune patru site-uri de conexiune standard:
| Index | Latură |
|---|---|
0 | Sus |
1 | Stânga |
2 | Jos |
3 | Dreapta |
Adăugarea unui Conector Îndoit Între Două Forme
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);
}Tipuri de Forme de Conector
| ShapeType | Descriere |
|---|---|
ShapeType.BENT_CONNECTOR3 | Două coturi de 90 de grade (cele mai comune pentru diagrame de tip fluxogramă) |
ShapeType.BENT_CONNECTOR2 | Un cot de 90 de grade |
ShapeType.BENT_CONNECTOR4 | Trei coturi de 90 de grade |
ShapeType.STRAIGHT_CONNECTOR1 | Linie dreaptă directă |
ShapeType.CURVED_CONNECTOR2 | Curbă netedă unică |
ShapeType.CURVED_CONNECTOR3 | Curbă cu dublu cot |
Conexiune de Sus în Jos
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);
}Diagramă de flux cu mai mulți conectori
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);
}Formatarea unui Conector
Conectorii susțin același getLineFormat() proprietăți ca alte forme:
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);
}