Πώς να συνδέετε σχήματα με συνδετήρες στο Java
Οι συνδέσεις στο Aspose.Slides FOSS είναι γραμμικές μορφές που προστίθενται σε Σελίδες σύνδεσης Σε άλλες μορφές. Όταν μετακινείτε μια συνδεδεμένη μορφή, το τελικό σημείο του συνδέσμου κινείται μαζί της. Ο πιο συνηθισμένος τύπος συνάψεων είναι: BENT_CONNECTOR3, που διασχίζουν τα εμπόδια με ένα μόνο ελαφρύ βέλος.
Προϋποθέσεις
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>26.7.0</version>
</dependency>Ινδρύσεις Ιστοσελίδας Συνδέσεων
Κάθε μορφή έχει τέσσερις αριθμημένες συνδέσεις:
| Ινδρύσεις | Θέση |
|---|---|
0 | Κέντρο Top |
1 | Αριστερά Κέντρο |
2 | Κέντρο κάτω |
3 | Κέντρο σωστό |
Συνδέστε δύο μορφές
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IConnector;
import org.aspose.slides.foss.ILineFormat;
import org.aspose.slides.foss.Connector;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
// Add two rectangles
IAutoShape box1 = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 200, 200, 100
);
IAutoShape box2 = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 450, 200, 200, 100
);
box1.addTextFrame("Start");
box2.addTextFrame("End");
// Add a bent connector (initial bounds are overwritten by the connection)
IConnector conn = slide.getShapes().addConnector(
ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10
);
// Connect right side of box1 (site 3) to left side of box2 (site 1)
conn.setStartShapeConnectedTo(box1);
conn.setStartShapeConnectionSiteIndex(3);
conn.setEndShapeConnectedTo(box2);
conn.setEndShapeConnectionSiteIndex(1);
prs.save("connected.pptx", SaveFormat.PPTX);
}Ο κάτοχος περιορίζεται (0, 0, 10, 10) Πέρασε στο addConnector αγνοούνται μόλις οριστούν τα τερματικά σημεία σύνδεσης. το PowerPoint επαναδιατρέχει τον συνδέκτη στις προστιθέμενες μορφές.
Τύποι συνδέσεων
import org.aspose.slides.foss.ShapeType;
// Straight line
ShapeType.STRAIGHT_CONNECTOR1
// Single elbow (L-shape)
ShapeType.BENT_CONNECTOR2
// Double elbow (Z-shape): most common
ShapeType.BENT_CONNECTOR3
// Curved connector
ShapeType.CURVED_CONNECTOR3Στυλ της γραμμής συνδέσεων
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IConnector;
import org.aspose.slides.foss.ILineFormat;
import org.aspose.slides.foss.Connector;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape box1 = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 150, 180, 80
);
IAutoShape box2 = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 500, 300, 180, 80
);
IConnector conn = slide.getShapes().addConnector(
ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10
);
conn.setStartShapeConnectedTo(box1);
conn.setStartShapeConnectionSiteIndex(2); // bottom of box1
conn.setEndShapeConnectedTo(box2);
conn.setEndShapeConnectionSiteIndex(0); // top of box2
// Style: 2 pt width, blue color
ILineFormat lf = conn.getLineFormat();
lf.setWidth(2.0);
lf.getFillFormat().getSolidFillColor().setColor(
Color.fromArgb(255, 0, 0, 255)
);
prs.save("styled-connector.pptx", SaveFormat.PPTX);
}Σύνδεση με πολλαπλούς συνδέσμους
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IConnector;
import org.aspose.slides.foss.ILineFormat;
import org.aspose.slides.foss.Connector;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
// Three-step flowchart
IAutoShape step1 = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 350, 50, 200, 70
);
IAutoShape step2 = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 350, 220, 200, 70
);
IAutoShape step3 = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 350, 390, 200, 70
);
step1.addTextFrame("Step 1");
step2.addTextFrame("Step 2");
step3.addTextFrame("Step 3");
// Connect step1 -> step2
IConnector conn1 = slide.getShapes().addConnector(
ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10
);
conn1.setStartShapeConnectedTo(step1);
conn1.setStartShapeConnectionSiteIndex(2); // bottom
conn1.setEndShapeConnectedTo(step2);
conn1.setEndShapeConnectionSiteIndex(0); // top
// Connect step2 -> step3
IConnector conn2 = slide.getShapes().addConnector(
ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10
);
conn2.setStartShapeConnectedTo(step2);
conn2.setStartShapeConnectionSiteIndex(2);
conn2.setEndShapeConnectedTo(step3);
conn2.setEndShapeConnectionSiteIndex(0);
prs.save("flowchart.pptx", SaveFormat.PPTX);
}Διαβάστε τα χαρακτηριστικά του συνδετήρα
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IConnector;
import org.aspose.slides.foss.ILineFormat;
import org.aspose.slides.foss.Connector;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation("connected.pptx")) {
for (IShape shape : prs.getSlides().get(0).getShapes()) {
if (shape instanceof Connector) {
IConnector conn = (IConnector) shape;
IShape start = conn.getStartShapeConnectedTo();
IShape end = conn.getEndShapeConnectedTo();
System.out.println("Connector: "
+ (start != null ? start.getName() : "?")
+ " -> "
+ (end != null ? end.getName() : "?"));
}
}
}