Java में कनेक्टर के साथ आकारों को कैसे जोड़ें
Aspose.Slides FOSS में कनेक्टर्स वे रेखा आकार होते हैं जो अन्य आकारों पर कनेक्शन साइट्स से जुड़ते हैं। जब आप किसी जुड़े हुए आकार को स्थानांतरित करते हैं, तो कनेक्टर का अंत बिंदु उसके साथ चलता है। सबसे सामान्य कनेक्टर प्रकार BENT_CONNECTOR3 है, जो एकल कोहनी मोड़ के साथ बाधाओं के चारों ओर मार्ग बनाता है।
पूर्वापेक्षाएँ
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>कनेक्शन साइट इंडेक्स
प्रत्येक आकार में चार क्रमांकित कनेक्शन साइट्स होते हैं:
| सूचकांक | स्थिति |
|---|---|
0 | ऊपरी केंद्र |
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() : "?"));
}
}
}