Apache POI লাইব্রেরি ব্যবহার করে PowerPoint স্লাইডে Embedded Media (ভিডিও এবং অডিও) যোগ করা সম্ভব। যদিও Apache POI সরাসরি ভিডিও এবং অডিও এমবেড করার জন্য সম্পূর্ণ সমর্থন প্রদান করে না, তবে আপনি PowerPoint ফাইলের মধ্যে ভিডিও বা অডিও ফাইল এমবেড করার জন্য সঠিক ফাইল রেফারেন্স এবং XML ট্যাগগুলির মাধ্যমে এটি করতে পারেন।
PowerPoint ফাইল এর মধ্যে মিডিয়া (ভিডিও এবং অডিও) এমবেড করার জন্য, আপনার XML ফাইলের media ট্যাগে নির্দিষ্ট মিডিয়া ফাইলের পাথ ও বৈশিষ্ট্য নির্ধারণ করতে হবে। Apache POI এর মাধ্যমে আপনি মূলত মিডিয়া ফাইলের লিঙ্ক যোগ করতে পারেন, এবং এসব মিডিয়া ফাইল সাধারণত আপনার PowerPoint ফাইলে ইনক্লুড করা থাকে।
এখানে, আমরা PowerPoint স্লাইডে ভিডিও এবং অডিও ফাইল যোগ করার জন্য দুটি উদাহরণ দেখব।
PowerPoint স্লাইডে ভিডিও যোগ করতে, আপনি XMLSlideShow API ব্যবহার করে স্লাইডে embedded media যোগ করতে পারেন। তবে, POI সোজা ভাবে ভিডিও এমবেড করার জন্য সরাসরি কোনো API সরবরাহ করে না। তবে, আপনি PowerPoint এর Shape এবং Hyperlink এর মাধ্যমে ভিডিও রেফারেন্স যোগ করতে পারেন।
import org.apache.poi.xslf.usermodel.*;
import java.io.*;
public class PowerPointEmbedVideo {
public static void main(String[] args) throws IOException {
// নতুন PowerPoint তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// স্লাইড তৈরি করা
XSLFSlide slide = ppt.createSlide();
// ভিডিও ফাইল যোগ করা (ভিডিও ফাইলের পাথ উল্লেখ করতে হবে)
XSLFShape videoShape = slide.createAutoShape();
videoShape.setShapeType(ShapeType.OVAL);
videoShape.setAnchor(new java.awt.Rectangle(150, 150, 300, 200));
// ভিডিও ফাইলের হাইপারলিঙ্ক যোগ করা
videoShape.setAction(Action.HYPERLINK);
videoShape.setActionHyperlink("file:///path/to/video.mp4"); // ভিডিও ফাইলের লোকেশন
// ফাইল সংরক্ষণ করা
FileOutputStream out = new FileOutputStream("presentation_with_video.pptx");
ppt.write(out);
out.close();
System.out.println("PowerPoint ফাইল তৈরি এবং ভিডিও যোগ করা হয়েছে!");
}
}
এইভাবে আপনি PowerPoint স্লাইডে ভিডিও ফাইলের লিঙ্ক যোগ করতে পারেন, তবে এটি শুধু লিঙ্ক করবে; ভিডিওটি এমবেড হবে না, তবে ফাইলটি স্লাইডের একটি অংশ হিসেবে প্রদর্শিত হবে।
অডিও এমবেড করার জন্যও একইভাবে Shape এবং Hyperlink এর মাধ্যমে অডিও ফাইলের লিঙ্ক দেওয়া যেতে পারে। তবে, আপনি যদি অডিও ফাইল এমবেড করতে চান তবে WMV, MP3, WAV ফরম্যাটের অডিও ফাইল PowerPoint স্লাইডে যোগ করতে হবে।
import org.apache.poi.xslf.usermodel.*;
import java.io.*;
public class PowerPointEmbedAudio {
public static void main(String[] args) throws IOException {
// নতুন PowerPoint তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// স্লাইড তৈরি করা
XSLFSlide slide = ppt.createSlide();
// অডিও ফাইল যোগ করা (অডিও ফাইলের পাথ উল্লেখ করতে হবে)
XSLFShape audioShape = slide.createAutoShape();
audioShape.setShapeType(ShapeType.OVAL);
audioShape.setAnchor(new java.awt.Rectangle(200, 200, 300, 200));
// অডিও ফাইলের হাইপারলিঙ্ক যোগ করা
audioShape.setAction(Action.HYPERLINK);
audioShape.setActionHyperlink("file:///path/to/audio.mp3"); // অডিও ফাইলের লোকেশন
// ফাইল সংরক্ষণ করা
FileOutputStream out = new FileOutputStream("presentation_with_audio.pptx");
ppt.write(out);
out.close();
System.out.println("PowerPoint ফাইল তৈরি এবং অডিও যোগ করা হয়েছে!");
}
}
PowerPoint ফাইলের স্লাইডে এমবেড করা ভিডিও বা অডিও ফাইলের সাইজ বেশ বড় হতে পারে, এবং তাই ফাইলের পাথটি সঠিকভাবে সেট করতে হবে। যদি আপনি স্থানীয় ডিরেক্টরি থেকে ফাইল এমবেড করেন, তবে ফাইলের পাথটি সঠিকভাবে উল্লেখ করতে হবে।
হালকা ভিডিও বা অডিও ফাইল ব্যবহার করার চেষ্টা করুন যাতে PowerPoint ফাইলটি বড় না হয়ে যায়। খুব বড় মিডিয়া ফাইল ফাইলের আকার বাড়িয়ে ফেলতে পারে।
Apache POI ব্যবহার করে PowerPoint স্লাইডে ভিডিও এবং অডিও যোগ করা সম্ভব, যদিও সরাসরি মিডিয়া এমবেড করার জন্য POI লাইব্রেরি কিছু সীমাবদ্ধতা রয়েছে। আপনি হাইপারলিঙ্ক অ্যাকশন ব্যবহার করে মিডিয়া ফাইলের লিঙ্ক যোগ করতে পারেন। এই পদ্ধতিতে আপনি ভিডিও এবং অডিও ফাইলের সঠিক পাথ উল্লেখ করে তাদেরকে স্লাইডে লিঙ্ক করতে পারবেন।
PowerPoint প্রেজেন্টেশনে ভিডিও ইনসার্ট করা প্রেজেন্টেশনের ইন্টারঅ্যাকটিভিটি এবং আকর্ষণ বাড়ায়। অ্যাপাচি পিওআই (Apache POI) লাইব্রেরি ব্যবহার করে আপনি PowerPoint ফাইলে ভিডিও ফাইল যোগ করতে পারেন। এই প্রক্রিয়ায়, ভিডিও ফাইলটি PowerPoint স্লাইডে এম্বেড (embed) বা লিঙ্ক (link) হিসেবে যোগ করা সম্ভব।
এখানে আমরা দেখবো কিভাবে অ্যাপাচি পিওআই ব্যবহার করে PowerPoint স্লাইডে ভিডিও ইনসার্ট করা যায়।
অ্যাপাচি পিওআই (Apache POI) তে স্লাইডে ভিডিও এম্বেড করা সরাসরি সমর্থিত নয়, তবে আপনি ভিডিও ফাইলের লিঙ্ক দিয়ে বা স্লাইডে Shape হিসেবে এম্বেড করতে পারেন। ভিডিও ফাইলটি সাধারণত লিঙ্ক বা ইউআরএল মাধ্যমে অ্যাক্সেস করা হয়।
এখানে একটি সাধারণ উদাহরণ দেয়া হলো যেখানে ভিডিও ফাইলের পাথ লিঙ্ক হিসেবে অ্যাড করা হয়েছে।
import org.apache.poi.xslf.usermodel.*;
import org.apache.poi.sl.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
public class InsertVideoInPowerPoint {
public static void main(String[] args) throws IOException {
// PowerPoint ফাইল তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// স্লাইড তৈরি করা
XSLFSlide slide = ppt.createSlide();
// ভিডিও ফাইল পাথ বা URL নির্ধারণ করা
String videoFilePath = "file:///C:/Videos/sample_video.mp4"; // ভিডিও ফাইল পাথ
// ভিডিও ফাইলের লিঙ্ক তৈরি করা
XSLFAutoShape shape = slide.createAutoShape();
shape.setShapeType(ShapeType.RECTANGLE);
shape.setAnchor(new java.awt.Rectangle(100, 100, 400, 300)); // ভিডিও ফ্রেমের আকার
// ভিডিও ফাইলের লিঙ্ক ইনসার্ট করা
shape.setHyperlink(URI.create(videoFilePath)); // ভিডিও ফাইলের লিঙ্ক
// PowerPoint ফাইল সংরক্ষণ
FileOutputStream out = new FileOutputStream("presentation_with_video.pptx");
ppt.write(out);
out.close();
ppt.close();
}
}
XMLSlideShow
ব্যবহার করে একটি নতুন PowerPoint ফাইল তৈরি করা হয়েছে।file:///C:/Videos/sample_video.mp4
হিসেবে দেওয়া হয়েছে। আপনি এই পাথটি আপনার ভিডিও ফাইলের পাথ দিয়ে পরিবর্তন করতে পারেন।setHyperlink()
মেথড ব্যবহার করে ভিডিও ফাইলের ইউআরএল বা পাথ স্লাইডে অ্যাসাইন করা হয়েছে।presentation_with_video.pptx
হিসেবে সংরক্ষণ করা হয়েছে।এখন, যদি আপনি ভিডিও ফাইলটি স্লাইডে এম্বেড (embed) করতে চান, তবে আপনি ভিডিও ফাইলটি PowerPoint ফাইলের অংশ হিসেবে সংযুক্ত করতে পারেন। তবে, অ্যাপাচি পিওআই (Apache POI) লাইব্রেরি সরাসরি ভিডিও এম্বেড সমর্থন করে না। তবে, আপনি ভিডিও ফাইলটি টেমপ্লেটের অংশ হিসেবে এম্বেড করতে চাইলে, PowerPoint সফটওয়্যার ব্যবহার করে ভিডিও ফাইলটি Insert > Video > Video on my PC অপশনের মাধ্যমে এম্বেড করতে হবে।
যখন আপনি ভিডিও ফাইলকে লিঙ্ক বা এম্বেড করে প্রেজেন্টেশনে সংযুক্ত করেন, তখন ভিডিওটি ক্লিক করলে স্লাইড শো চলার সময় সেভাবে চালু হবে। আপনি যদি এই ভিডিওর জন্য বিশেষ কোনো প্লে অ্যাকশন (Play Action) নির্ধারণ করতে চান, তবে PowerPoint UI (User Interface) ব্যবহার করে ভিডিও প্লে করার সেটিংস নির্ধারণ করতে হবে।
অ্যাপাচি পিওআই (Apache POI) লাইব্রেরি ব্যবহার করে PowerPoint স্লাইডে ভিডিও ইনসার্ট করা সম্ভব, তবে ভিডিও এম্বেড করার পরিবর্তে ভিডিও ফাইলের পাথ বা URL লিঙ্ক হিসেবে যুক্ত করা হয়। ভিডিও ফাইলের জন্য এম্বেড বা লিঙ্ক অ্যাকশন যোগ করা সহজ, এবং স্লাইড শো চলাকালীন এই ভিডিও ফাইলগুলি প্লে হবে। অ্যাপাচি পিওআই-এর মাধ্যমে আপনি কেবল ভিডিও লিঙ্ক যোগ করতে পারবেন, তবে ভিডিও এম্বেড করার জন্য PowerPoint সফটওয়্যারের নিজস্ব ইন্টারফেস ব্যবহার করতে হবে।
Apache POI লাইব্রেরি ব্যবহার করে আপনি PowerPoint স্লাইডে অডিও ফাইল যোগ করতে পারেন। এটি মূলত XSLF
API ব্যবহার করে করা হয়, যা আপনাকে .pptx ফাইলের স্লাইডে বিভিন্ন ধরনের মিডিয়া (অডিও, ভিডিও, ছবি ইত্যাদি) অন্তর্ভুক্ত করতে সাহায্য করে।
যদিও POI সরাসরি অডিও ফাইলের কন্টেন্ট এমবেড করার জন্য একটি বিশেষ API সরবরাহ করে না, তবে আপনি PowerPoint ফাইল এর মধ্যে অডিও ফাইল যোগ করতে পারেন audio embedded objects হিসেবে। এর জন্য, আপনাকে অবশ্যই স্লাইডে audio file এর রেফারেন্স যুক্ত করতে হবে।
PowerPoint ফাইলের মধ্যে অডিও ফাইল যোগ করার জন্য প্রথমে Apache POI এর XSLF
API ব্যবহার করে স্লাইড তৈরি করতে হবে এবং তারপর সেই স্লাইডে অডিও ফাইল রেফারেন্স সংযুক্ত করতে হবে।
নিচে একটি উদাহরণ দেওয়া হল যা দেখাবে কীভাবে আপনি Apache POI ব্যবহার করে PowerPoint ফাইলে অডিও ফাইল যোগ করতে পারেন।
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextBox;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFAudioData;
import org.apache.xmlbeans.XmlCursor;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class PowerPointAudioExample {
public static void main(String[] args) throws IOException {
// নতুন PowerPoint স্লাইড শো তৈরি করুন
XMLSlideShow ppt = new XMLSlideShow();
// একটি স্লাইড তৈরি করুন
XSLFSlide slide = ppt.createSlide();
// স্লাইডে কিছু টেক্সট যোগ করুন
XSLFTextBox textBox = slide.createTextBox();
textBox.setText("এটি একটি PowerPoint স্লাইড");
// অডিও ফাইল যোগ করা
File audioFile = new File("audio.mp3"); // অডিও ফাইলের পাথ
if (audioFile.exists()) {
XSLFAudioData audioData = ppt.addAudio(audioFile); // অডিও ফাইল যুক্ত করা
// অডিও সংক্রান্ত মেটাডেটা সেট করা
XmlCursor cursor = slide.getXmlObject().newCursor();
cursor.selectPath("./*");
cursor.toNextToken();
cursor.beginElement("audio");
cursor.insertAttributeWithValue("src", audioData.getAudioFile().getName());
}
// PowerPoint ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("slide_with_audio.pptx")) {
ppt.write(out);
}
System.out.println("PowerPoint ফাইলের সাথে অডিও যোগ করা হয়েছে!");
}
}
এখানে:
XSLFAudioData
: এই ক্লাসটি অডিও ফাইল যোগ করার জন্য ব্যবহৃত হয়।addAudio()
: এই মেথডটি অডিও ফাইল যোগ করতে সাহায্য করে।slide.getXmlObject()
: XML অবজেক্টের মাধ্যমে অডিও রেফারেন্স যোগ করা হয়।এছাড়া, আপনি অডিওর পাথ এবং অন্যান্য মেটাডেটা সংরক্ষণও করতে পারবেন, যাতে স্লাইডের মধ্যে অডিওের পছন্দ অনুযায়ী কার্যকরী হতে পারে।
PowerPoint সাধারণত MP3, WAV, বা WMA ফরম্যাটের অডিও ফাইল সমর্থন করে। তাই আপনি যেকোনো একটি সমর্থিত ফরম্যাট ব্যবহার করতে পারেন।
Apache POI দিয়ে সরাসরি অডিও প্লেব্যাক কন্ট্রোল (যেমন প্লে, পজ, স্টপ) কাস্টমাইজ করা সম্ভব নয়। তবে, PowerPoint এর নিজস্ব PowerPoint Player ব্যবহারের মাধ্যমে অডিও প্লে করা সম্ভব, যা স্লাইডের অংশ হিসেবে অডিও ফাইলটি বাজাবে।
Apache POI লাইব্রেরি দিয়ে আপনি PowerPoint ফাইলে অডিও ফাইল যোগ করতে পারেন। এটি করা হয় XSLF
API ব্যবহার করে, যেখানে আপনি audio files এমবেড করতে পারেন এবং সেই স্লাইডে অডিও ফাইলের রেফারেন্স সংযুক্ত করতে পারেন। যদিও POI সরাসরি প্লেব্যাক কন্ট্রোল বা অডিও কাস্টমাইজেশন সম্পাদনা করার সুযোগ দেয় না, তবে এটি অডিও ফাইল স্লাইডের অংশ হিসেবে সন্নিবেশ করাতে সহায়ক।
Apache POI ব্যবহার করে আপনি PowerPoint ফাইলের মধ্যে embedded media (যেমন, ছবি, অডিও, ভিডিও ইত্যাদি) পরিচালনা এবং কাস্টমাইজ করতে পারেন। যদিও Apache POI-তে এর সরাসরি সমর্থন সীমিত, তবে আপনি XMLSlideShow এবং XSLFSlide ক্লাস ব্যবহার করে ছবির মতো বিভিন্ন মিডিয়া ফাইল অন্তর্ভুক্ত করতে পারেন।
PowerPoint ফাইলের মধ্যে embedded media যোগ এবং কাস্টমাইজ করার সময়, সাধারণত মিডিয়া ফাইলগুলোকে পাথ বা URI হিসেবে অন্তর্ভুক্ত করা হয়, এবং এগুলির স্টাইল, আকার ও অবস্থান নির্ধারণ করা হয়।
এখানে embedded media (ছবি, অডিও) যুক্ত করার এবং কাস্টমাইজ করার উদাহরণ দেয়া হলো।
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import java.awt.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddImageExample {
public static void main(String[] args) throws IOException {
// একটি নতুন PowerPoint ফাইল তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// একটি স্লাইড তৈরি করা
XSLFSlide slide1 = ppt.createSlide();
// ছবি যোগ করার উদাহরণ
String imagePath = "path/to/image.jpg"; // ছবি ফাইলের পাথ
byte[] pictureData = getImageData(imagePath);
// ছবি ফাইলকে PowerPoint ফাইলে যোগ করা
XSLFPictureData picture = ppt.addPicture(pictureData, XSLFPictureData.PictureType.JPEG);
// স্লাইডে ছবির অবস্থান এবং আকার নির্ধারণ করা
slide1.createPicture(picture, new Rectangle(100, 100, 400, 300));
// PowerPoint ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("PowerPointWithImage.pptx")) {
ppt.write(out);
}
System.out.println("PowerPoint file with image added successfully!");
}
// ছবি ফাইলের বাইট অ্যারে পাওয়ার জন্য মেথড
private static byte[] getImageData(String imagePath) throws IOException {
FileInputStream imageStream = new FileInputStream(imagePath);
byte[] bytes = new byte[imageStream.available()];
imageStream.read(bytes);
imageStream.close();
return bytes;
}
}
Rectangle(100, 100, 400, 300)
দিয়ে ছবির স্থান এবং আকার (পিক্সেলে) নির্ধারণ করা হয়েছে।অডিও ফাইল অন্তর্ভুক্ত করার জন্য POI সরাসরি সমর্থন না দিলেও, আপনি PowerPoint ফাইলের মধ্যে audio ফাইলের লিঙ্ক যোগ করতে পারেন। PowerPoint অ্যাপ্লিকেশন যখন ফাইলটি খুলবে, তখন এটি সেই অডিও ফাইলকে সংশ্লিষ্ট লিঙ্ক থেকে লোড করবে।
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFShape;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddAudioLinkExample {
public static void main(String[] args) throws IOException {
// একটি নতুন PowerPoint ফাইল তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// একটি স্লাইড তৈরি করা
XSLFSlide slide = ppt.createSlide();
// অডিও ফাইলের লিঙ্ক অন্তর্ভুক্ত করার জন্য একটি স্লাইড শেপ তৈরি
XSLFShape audioLink = slide.createAutoShape();
audioLink.setAnchor(new java.awt.Rectangle(100, 100, 200, 50));
audioLink.setText("Click here to play audio!");
// অডিও ফাইলের লিঙ্ক বা URI নির্ধারণ করা
String audioFilePath = "path/to/audio.mp3";
audioLink.setHyperlink(audioFilePath);
// PowerPoint ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("PowerPointWithAudio.pptx")) {
ppt.write(out);
}
System.out.println("PowerPoint file with audio link added successfully!");
}
}
PowerPoint ফাইলে ভিডিও অন্তর্ভুক্ত করতে পারা সরাসরি সমর্থিত নয়, তবে আপনি Hyperlink ব্যবহার করে ভিডিও ফাইলের লিঙ্ক অন্তর্ভুক্ত করতে পারেন। এই লিঙ্কে ক্লিক করলে ভিডিও প্লেয়ার ওপেন হবে।
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFShape;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddVideoLinkExample {
public static void main(String[] args) throws IOException {
// একটি নতুন PowerPoint ফাইল তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// একটি স্লাইড তৈরি করা
XSLFSlide slide = ppt.createSlide();
// ভিডিও ফাইলের লিঙ্ক অন্তর্ভুক্ত করার জন্য একটি স্লাইড শেপ তৈরি
XSLFShape videoLink = slide.createAutoShape();
videoLink.setAnchor(new java.awt.Rectangle(100, 100, 200, 50));
videoLink.setText("Click here to play video!");
// ভিডিও ফাইলের লিঙ্ক বা URI নির্ধারণ করা
String videoFilePath = "path/to/video.mp4";
videoLink.setHyperlink(videoFilePath);
// PowerPoint ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("PowerPointWithVideo.pptx")) {
ppt.write(out);
}
System.out.println("PowerPoint file with video link added successfully!");
}
}
Apache POI-তে PowerPoint ফাইলে embedded media (ছবি, অডিও, ভিডিও) যোগ এবং কাস্টমাইজেশন করা সম্ভব। আপনি ছবি ফাইল যোগ করতে XSLFPictureData, অডিও বা ভিডিও ফাইলের জন্য Hyperlink ব্যবহার করতে পারেন। PowerPoint ফাইলের সাথে এই মিডিয়া সংযুক্ত করার সময় তাদের অবস্থান এবং আকার কাস্টমাইজ করা যায়, যা ব্যবহারকারীদের জন্য ইন্টারঅ্যাকটিভ অভিজ্ঞতা তৈরি করে।
common.read_more