অ্যাপাচি পিওআই (Apache POI) একটি ওপেন সোর্স লাইব্রেরি যা Microsoft Office ফাইল ফরম্যাট পড়তে এবং লিখতে ব্যবহৃত হয়, বিশেষ করে Excel, Word, এবং PowerPoint ফাইল ফরম্যাটের জন্য। PowerPoint (PPTX) ফাইলের সাথে কাজ করার সময় Grouping এবং Ungrouping Shapes একটি সাধারণ কার্যকলাপ হতে পারে, যেখানে আপনি একাধিক শেপ (যেমন, টেক্সট বক্স, চিত্র, আউটলাইন, ইত্যাদি) একসাথে গ্রুপ করতে বা গ্রুপ ভেঙে দিতে পারেন।
Apache POI এর মাধ্যমে PowerPoint (PPTX) ফাইলের শেপগুলি গ্রুপ এবং আনগ্রুপ করতে কিছু কার্যকরী ফিচার সরবরাহ করা হয়।
Apache POI এর মাধ্যমে গ্রুপিং করা সোজা নয় কারণ এটি বিশেষভাবে গ্রুপিং বা আর্কিটেকচারের জন্য ডিজাইন করা হয়নি। তবে আপনি সঠিকভাবে শেপগুলি লেআউট করে এবং তাদেরকে একত্রে ম্যানিপুলেট করতে পারেন। নিম্নলিখিত কোডটি গ্রুপিংয়ের জন্য একটি সাধারণ ধারণা প্রদান করে:
import org.apache.poi.xslf.usermodel.*;
import org.apache.poi.xslf.usermodel.XSLFGroupShape;
import org.apache.poi.xslf.usermodel.XSLFShape;
import java.io.*;
public class GroupShapesExample {
public static void main(String[] args) throws IOException {
// একটি নতুন PowerPoint তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// স্লাইড তৈরি করা
XSLFSlide slide = ppt.createSlide();
// দুটি শেপ তৈরি করা
XSLFAutoShape shape1 = slide.createAutoShape();
shape1.setShapeType(ShapeType.RECTANGLE);
shape1.setAnchor(new java.awt.Rectangle(50, 50, 200, 100));
XSLFAutoShape shape2 = slide.createAutoShape();
shape2.setShapeType(ShapeType.ELLIPSE);
shape2.setAnchor(new java.awt.Rectangle(100, 100, 200, 100));
// দুটি শেপ একত্রিত করা (গ্রুপ করা)
XSLFGroupShape groupShape = slide.createGroupShape();
groupShape.addShape(shape1);
groupShape.addShape(shape2);
// ফাইল সংরক্ষণ করা
try (FileOutputStream out = new FileOutputStream("grouped_shapes.pptx")) {
ppt.write(out);
}
System.out.println("PowerPoint ফাইল সফলভাবে গ্রুপ করা শেপ সহ তৈরি হয়েছে!");
}
}
এই কোডে:
shape1
এবং shape2
) তৈরি করা হয়েছে এবং তাদের গ্রুপ করা হয়েছে XSLFGroupShape
এর মাধ্যমে।grouped_shapes.pptx
হিসেবে সংরক্ষণ করা হয়েছে।Apache POI সরাসরি Ungrouping এর জন্য সমর্থন প্রদান করে না। তবে, আপনি গ্রুপ শেপ থেকে শেপগুলো বের করে নিয়ে এবং আলাদাভাবে ব্যবহৃত শেপ হিসাবে সেট করতে পারেন। নিচে এর একটি উদাহরণ দেওয়া হয়েছে:
import org.apache.poi.xslf.usermodel.*;
import java.io.*;
public class UngroupShapesExample {
public static void main(String[] args) throws IOException {
// PowerPoint ফাইল লোড করা
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("grouped_shapes.pptx"));
// প্রথম স্লাইডের শেপগুলো সংগ্রহ করা
XSLFSlide slide = ppt.getSlides().get(0);
XSLFGroupShape groupShape = (XSLFGroupShape) slide.getShapes().get(0);
// গ্রুপ থেকে আলাদা শেপ বের করা
for (XSLFShape shape : groupShape.getShapes()) {
// আলাদা শেপ হিসাবে প্রসেস বা কাজ করা
System.out.println("Shape: " + shape.getShapeType());
}
// ফাইল সংরক্ষণ করা
try (FileOutputStream out = new FileOutputStream("ungrouped_shapes.pptx")) {
ppt.write(out);
}
System.out.println("PowerPoint ফাইল সফলভাবে আনগ্রুপ করা শেপ সহ তৈরি হয়েছে!");
}
}
groupShape.getShapes()
থেকে প্রতিটি শেপকে আলাদা করা হচ্ছে এবং আপনি সেগুলির উপর আলাদা কাজ করতে পারবেন।ungrouped_shapes.pptx
নামে সংরক্ষণ করা হয়েছে।Apache POI ব্যবহার করে PowerPoint ফাইলের Shapes গ্রুপিং এবং আনগ্রুপিং করা সরাসরি সমর্থনিত নয়, তবে আপনি শেপগুলোকে XSLFGroupShape ব্যবহার করে গ্রুপ করতে পারেন এবং পরে সেই গ্রুপ থেকে শেপগুলো বের করতে পারেন। Grouping এবং Ungrouping একসাথে কাজ করার মাধ্যমে, আপনি PowerPoint ফাইলের কন্টেন্ট ম্যানিপুলেট এবং কাস্টমাইজ করতে পারবেন।
common.read_more