Bekerja dengan Penyambung — Aspose.Slides FOSS untuk Java
Penyambung adalah bentuk yang secara visual menghubungkan dua bentuk lain dengan garis. Aspose.Slides FOSS untuk Java menyokong penyambung bengkok, lurus, dan melengkung. Titik sambungan pada satu bentuk dikenali dengan integer indeks tapak sambungan.
Indeks Tapak Sambungan
Setiap bentuk menyediakan empat tapak sambungan standard:
| Indeks | Sisi |
|---|---|
0 | Atas |
1 | Kiri |
2 | Bawah |
3 | Kanan |
Menambah Penyambung Bengkok Antara Dua Bentuk
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);
}Jenis Bentuk Penyambung
| ShapeType | Deskripsi |
|---|---|
ShapeType.BENT_CONNECTOR3 | Dua lengkungan 90 darjah (paling umum untuk diagram gaya carta alir) |
ShapeType.BENT_CONNECTOR2 | Satu lengkungan 90 darjah |
ShapeType.BENT_CONNECTOR4 | Tiga lengkungan 90 darjah |
ShapeType.STRAIGHT_CONNECTOR1 | Garis lurus langsung |
ShapeType.CURVED_CONNECTOR2 | Lengkungan licin tunggal |
ShapeType.CURVED_CONNECTOR3 | Lengkungan dua bengkok |
Sambungan Atas-ke-Bawah
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);
}Carta Alir dengan Pelbagai Penyambung
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);
}Memformat Penyambung
Penyambung menyokong yang sama getLineFormat() ciri‑ciri seperti bentuk lain:
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);
}