AWT (Abstract Window Toolkit) একটি গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) লাইব্রেরি যা Java প্রোগ্রামিং ভাষায় ব্যবহৃত হয়। এটি বিভিন্ন ধরনের গ্রাফিক্যাল উপাদান যেমন বোতাম, টেক্সট ফিল্ড, চেকবক্স ইত্যাদি তৈরি করতে ব্যবহৃত হয়। তবে, AWT প্রিন্টিং সম্পর্কিত একটি গুরুত্বপূর্ণ ফিচারও প্রদান করে, যা ব্যবহারকারীদের কাস্টম প্রিন্টিং লেআউট (Custom Printing Layout) এবং পেজ ফরম্যাট (Page Format) কনফিগার করতে সহায়তা করে।
Custom Printing Layout
AWT-তে Custom Printing Layout ব্যবহার করে আপনি প্রিন্ট আউটের জন্য কাস্টম ডিজাইন তৈরি করতে পারেন। এটি মূলত PrinterJob ক্লাসের মাধ্যমে করা হয়। PrinterJob একটি জাভা ক্লাস যা আপনাকে প্রিন্টার নির্বাচন এবং প্রিন্টিং টাস্ক নির্ধারণ করতে সহায়তা করে। এই ক্লাসের মাধ্যমে আপনি প্রিন্টিং পেজের কন্টেন্ট এবং লেআউট কাস্টমাইজ করতে পারেন।
প্রিন্টিং লেআউট কাস্টমাইজ করার কিছু সাধারণ পদ্ধতি:
- PageFormat ক্লাস ব্যবহার: এই ক্লাসটি পেজের আকার, মার্জিন, এবং orientation কাস্টমাইজ করতে সহায়তা করে।
- Graphics এবং Graphics2D ক্লাস: এই ক্লাসগুলো ব্যবহার করে প্রিন্ট পেজে গ্রাফিক্স উপাদান যেমন লাইন, টেক্সট, এবং অন্যান্য আকৃতি আঁকতে পারেন।
Page Format
AWT-তে Page Format কাস্টমাইজ করার জন্য PageFormat ক্লাস ব্যবহার করা হয়। এটি প্রিন্টিং পেজের আকার এবং অন্যান্য বৈশিষ্ট্য যেমন মাপ এবং মার্জিন সেট করতে সাহায্য করে। আপনি যেকোনো পেজ সাইজ বা অরিয়েন্টেশন নির্বাচন করতে পারেন, যেমন ল্যান্ডস্কেপ বা পোর্ট্রেট।
PageFormat কাস্টমাইজ করার কিছু গুরুত্বপূর্ণ পয়েন্ট:
- Set Paper: এটি পেজের কাগজের আকার সেট করতে ব্যবহৃত হয়।
- Set Orientation: এটি পেজের অরিয়েন্টেশন (ল্যান্ডস্কেপ বা পোর্ট্রেট) নির্ধারণ করে।
- Set Margins: পেজের চারপাশে মার্জিন নির্ধারণ করা যায়।
প্রিন্টিং উদাহরণ
import java.awt.*;
import java.awt.print.*;
public class CustomPrintExample implements Printable {
public int print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException {
if (pageIndex > 0) {
return NO_SUCH_PAGE;
}
Graphics2D g2d = (Graphics2D) g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
// Custom layout: Drawing text
g2d.setFont(new Font("Serif", Font.PLAIN, 12));
g2d.drawString("Custom Printed Page", 100, 100);
return PAGE_EXISTS;
}
public static void main(String[] args) {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(new CustomPrintExample());
try {
if (job.printDialog()) {
job.print();
}
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
এই কোডটি একটি কাস্টম প্রিন্ট লেআউট তৈরি করে যেখানে একটি সাধারণ টেক্সট "Custom Printed Page" পেজের উপর প্রিন্ট করা হয়।
AWT-তে Custom Printing Layout এবং Page Format কাস্টমাইজ করার মাধ্যমে আপনি আপনার প্রিন্ট আউটকে সম্পূর্ণ নিজের মতো করে ডিজাইন করতে পারেন, যা অনেক ধরনের প্রিন্টিং টাস্কে উপকারী হতে পারে।
Read more