AWT (Abstract Window Toolkit) হলো Java এর একটি গ্রাফিকাল ইউজার ইন্টারফেস (GUI) লাইব্রেরি যা ব্যবহারকারীর ইন্টারফেস উপাদান যেমন বোতাম, লেবেল, টেক্সটফিল্ড ইত্যাদি তৈরি করতে ব্যবহৃত হয়। Java এর AWT লাইব্রেরি Graphics2D ক্লাসকে ব্যবহার করে বিভিন্ন গ্রাফিক্যাল রেন্ডারিং এবং প্রিন্টিং কাজ করা সম্ভব। এখানে, আমরা আলোচনা করব কিভাবে AWT এর Graphics2D ক্লাস ব্যবহার করে একটি ডকুমেন্ট প্রিন্ট করা যায়।
Graphics2D এবং Print API
Java-তে প্রিন্টিং সিস্টেম পরিচালনার জন্য একটি নির্দিষ্ট API রয়েছে, যার মধ্যে Graphics2D ক্লাস অন্যতম। Graphics2D হল Graphics ক্লাসের একটি সাবক্লাস যা আরো উন্নত গ্রাফিক্যাল রেন্ডারিং পদ্ধতি এবং বৈশিষ্ট্য প্রদান করে। এটি প্রিন্টিংয়ের জন্য ব্যবহার করা যেতে পারে, কারণ এটি বিভিন্ন গ্রাফিক্যাল উপাদান যেমন লাইন, আকার, টেক্সট ইত্যাদি সঠিকভাবে প্রিন্ট করতে সক্ষম।
AWT এর Print API ব্যবহার করে আপনি একটি ডকুমেন্ট প্রিন্ট করতে পারেন।
প্রিন্টার সেশন তৈরি করা
প্রথমে, একটি PrinterJob তৈরি করতে হবে যা প্রিন্ট সেশন পরিচালনা করবে। এরপর, একটি Pageable অবজেক্ট এবং Printable ইন্টারফেস ব্যবহার করে প্রিন্ট প্রক্রিয়া শুরু করা হয়।
import java.awt.*;
import java.awt.print.*;
public class PrintDocumentExample implements Printable {
public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
if (page > 0) {
return NO_SUCH_PAGE;
}
Graphics2D g2d = (Graphics2D) g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
// Custom drawing (printing)
g2d.setFont(new Font("Serif", Font.PLAIN, 24));
g2d.drawString("Hello, this is a printed document!", 100, 100);
return PAGE_EXISTS;
}
public static void main(String[] args) {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(new PrintDocumentExample());
if (job.printDialog()) {
try {
job.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}
কোডের ব্যাখ্যা
- Printable ইন্টারফেস:
Printableইন্টারফেস প্রিন্ট করার জন্য একটিprintপদ্ধতি প্রদান করে। এই পদ্ধতিতে আপনি কাস্টম গ্রাফিক্স (যেমন, টেক্সট, আকার, ছবি ইত্যাদি) আঁকতে পারেন। - Graphics2D:
Graphicsঅবজেক্টে কাস্টম গ্রাফিক্স রেন্ডার করার জন্য এটি ক্যাস্ট করা হয়।Graphics2Dক্লাস গ্রাফিক্সের উপর আরো উন্নত রেন্ডারিং এবং ট্রান্সফরমেশন প্রদান করে। - PrinterJob:
PrinterJobক্লাস প্রিন্টিং সেশন তৈরি করে। এটি প্রিন্ট ডায়ালগ খুলতে পারে এবং প্রিন্টার সিলেকশন পরিচালনা করতে পারে। - PageFormat: এটি ডকুমেন্টের পৃষ্ঠা ফর্ম্যাট (যেমন পৃষ্ঠা আকার, মার্জিন) নির্ধারণ করতে ব্যবহৃত হয়।
- Printing Logic:
Graphics2D.drawString()ব্যবহার করে পৃষ্ঠায় টেক্সট আঁকা হয়েছে। আপনি এখানে অন্যান্য গ্রাফিকাল উপাদানও আঁকতে পারেন, যেমন রেক্ট্যাঙ্গেল, সার্কেল, ইমেজ ইত্যাদি।
সারাংশ
AWT এর Graphics2D ক্লাস ব্যবহার করে Java-তে ডকুমেন্ট প্রিন্ট করা সহজ এবং কার্যকর। PrinterJob এবং Printable ইন্টারফেস ব্যবহার করে আপনি কাস্টম গ্রাফিক্স, টেক্সট, বা কোনো ডকুমেন্ট প্রিন্ট করতে পারেন। Java প্রিন্টিং API-টি গ্রাফিক্স প্রিন্টিংয়ের জন্য অত্যন্ত শক্তিশালী এবং নমনীয়।
Read more