অ্যাপাচি পিওআই (Apache POI) মডিউলটি PowerPoint ফাইল (.pptx এবং .ppt) ফরম্যাটে গ্রাফের স্টাইল এবং কালার কাস্টমাইজেশন করার জন্য ব্যবহৃত হতে পারে। আপনি যদি PowerPoint স্লাইডে গ্রাফ বা চার্ট যুক্ত করতে চান, তবে XSLF (নতুন .pptx
) মডিউলটি ব্যবহারের মাধ্যমে সহজেই বিভিন্ন গ্রাফের ধরন এবং তাদের স্টাইল কাস্টমাইজ করা সম্ভব।
এই গাইডে, আমরা দেখবো কিভাবে Apache POI ব্যবহার করে PowerPoint স্লাইডে গ্রাফ যুক্ত করা এবং তার স্টাইল ও কালার কাস্টমাইজ করা যায়।
আপনার Maven প্রোজেক্টে Apache POI এর poi-ooxml
ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version> <!-- NiFi ব্যবহারকারীর নির্দিষ্ট ভার্সন চেক করুন -->
</dependency>
Apache POI দিয়ে আপনি বেশ কিছু ধরনের গ্রাফ যেমন বার চার্ট (Bar Chart), পাই চার্ট (Pie Chart), লাইন চার্ট (Line Chart) ইত্যাদি তৈরি করতে পারেন। এখানে একটি বার চার্টের উদাহরণ দেওয়া হল যেখানে স্টাইল এবং কালার কাস্টমাইজ করা হয়েছে।
import org.apache.poi.xslf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import java.io.FileOutputStream;
import java.io.IOException;
import java.awt.Color;
public class PowerPointChartCustomization {
public static void main(String[] args) throws IOException {
// নতুন PowerPoint প্রেজেন্টেশন তৈরি
XMLSlideShow ppt = new XMLSlideShow();
// স্লাইড তৈরি
XSLFSlide slide = ppt.createSlide();
// একটি চার্ট তৈরি করা
XSLFChart chart = slide.createChart();
chart.setAnchor(new java.awt.Rectangle(100, 100, 500, 300));
// চার্টের ডেটা সেট করা
XSLFChartData data = chart.getChartData();
XSLFChartData.Series series = data.addSeries();
series.addPoint(10);
series.addPoint(20);
series.addPoint(30);
series.addPoint(40);
// গ্রাফের স্টাইল কাস্টমাইজেশন
chart.setTitle("Sample Bar Chart");
chart.setChartType(XSLFChart.ChartType.BAR);
// বার চার্টের জন্য কালার কাস্টমাইজেশন
series.setFillColor(Color.BLUE); // বার গুলোর রঙ
// এক্সিস স্টাইল কাস্টমাইজেশন
chart.getAxis(AxisPosition.BOTTOM).setTickMarkType(XSLFChart.AXIS_TICK_MARK.CROSS); // এক্সিসের টিক মার্কস কাস্টমাইজ
chart.getAxis(AxisPosition.LEFT).setTickMarkType(XSLFChart.AXIS_TICK_MARK.NONE);
// চার্টের লিজেন্ড স্টাইল কাস্টমাইজ
chart.getLegend().setVisible(true);
chart.getLegend().setPosition(XSLFChart.LegendPosition.BOTTOM);
// ফাইল আউটপুট
try (FileOutputStream out = new FileOutputStream("chart_customization.pptx")) {
ppt.write(out);
}
System.out.println("PowerPoint ফাইল তৈরি হয়েছে এবং গ্রাফের স্টাইল কাস্টমাইজ করা হয়েছে!");
}
}
series.setFillColor(Color.BLUE)
দিয়ে বার চার্টের বারগুলোর রঙ পরিবর্তন করা হয়েছে। এখানে যেকোনো রঙ ব্যবহার করা যেতে পারে যেমন Color.RED
, Color.GREEN
, ইত্যাদি।chart.setTitle("Sample Bar Chart")
দিয়ে সেট করা হয়েছে।setTickMarkType()
ব্যবহার করা হয়েছে।chart.getLegend().setPosition(XSLFChart.LegendPosition.BOTTOM)
।আপনি চাইলে Pie Chart, Line Chart বা অন্য কোনো গ্রাফ টাইপও তৈরি করতে পারেন। নিচে একটি Pie Chart এর উদাহরণ দেওয়া হল যেখানে আংশিক কালার কাস্টমাইজেশন করা হয়েছে।
XSLFChart pieChart = slide.createChart();
pieChart.setAnchor(new java.awt.Rectangle(100, 100, 500, 300));
// পিরামিডের জন্য ডেটা যুক্ত করা
XSLFChartData pieData = pieChart.getChartData();
XSLFChartData.Series pieSeries = pieData.addSeries();
pieSeries.addPoint(25);
pieSeries.addPoint(35);
pieSeries.addPoint(40);
// পিরামিডের কালার কাস্টমাইজেশন
pieSeries.setFillColor(Color.RED); // সেকশনের রঙ কাস্টমাইজ
pieSeries.setFillColor(Color.GREEN);
// চার্টের শিরোনাম সেট করা
pieChart.setTitle("Sample Pie Chart");
এখানে setFillColor()
পদ্ধতি দিয়ে বিভিন্ন সেকশনের জন্য রঙ পরিবর্তন করা হয়েছে।
XSLFChartData.Series.setLabelFont()
পদ্ধতি ব্যবহার করা যেতে পারে।chart.getLegend().setVisible()
পদ্ধতি ব্যবহার করা হয়। আপনি চাইলে লিজেন্ডকে কাস্টমাইজ করে তার অবস্থান, রঙ, আকার ইত্যাদি পরিবর্তন করতে পারেন।অ্যাপাচি পিওআই (Apache POI) ব্যবহার করে PowerPoint স্লাইডে গ্রাফ বা চার্টের স্টাইল এবং কালার কাস্টমাইজেশন করা সহজ। আপনি বিভিন্ন গ্রাফ টাইপ যেমন বার চার্ট, পাই চার্ট, লাইন চার্ট ইত্যাদি তৈরি করতে পারেন এবং তাদের বিভিন্ন বৈশিষ্ট্য যেমন রঙ, শিরোনাম, এক্সিস, লিজেন্ড ইত্যাদি কাস্টমাইজ করতে পারেন। XSLFChart
এবং XSLFChartData.Series
ক্লাসগুলির মাধ্যমে গ্রাফের প্রতিটি অংশকে কাস্টমাইজ করা সম্ভব।
common.read_more