Printing এবং PrintJob ব্যবস্থাপনা

এডাব্লিউটি (AWT) - Java Technologies

313

AWT (Abstract Window Toolkit) Java-তে GUI অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত একটি টুলকিট। AWT-তে Printing এবং PrintJob ব্যবস্থাপনা করার জন্য কিছু নির্দিষ্ট API এবং ক্লাস ব্যবহৃত হয়। এই ব্যবস্থাপনাগুলি আপনাকে প্রিন্টারের মাধ্যমে কাস্টম ডকুমেন্ট বা গ্রাফিক্স প্রিন্ট করতে সাহায্য করে।

AWT-তে Printing এবং PrintJob ব্যবস্থাপনা

Java AWT তে Printing এবং PrintJob ব্যবস্থাপনা করা যেতে পারে java.awt.PrintJob এবং java.awt.Graphics ক্লাসের মাধ্যমে। PrintJob হল একটি ইন্টারফেস যা প্রিন্টিং সম্পর্কিত কাজের জন্য ব্যবহৃত হয়, এবং এটি কিভাবে ডকুমেন্ট বা গ্রাফিক্স প্রিন্ট করা হবে তা নিয়ন্ত্রণ করে।

প্রিন্টিং প্রক্রিয়া

  1. PrintJob তৈরি: প্রথমে একটি PrintJob তৈরি করতে হয়। এটি Toolkit.getDefaultToolkit().getPrintJob() ব্যবহার করে প্রিন্টার রিসোর্স অর্জন করে।
  2. Graphics তৈরি: প্রিন্টিংয়ের জন্য Graphics অবজেক্টে ড্রয়িং করা হয়, যা প্রিন্টারের জন্য রেন্ডার করা হবে।
  3. PrintJob заверш: প্রিন্টিং শেষে PrintJob.end() মেথড কল করে প্রিন্ট প্রক্রিয়া শেষ করতে হয়।

উদাহরণ: AWT-তে Printing এবং PrintJob ব্যবস্থাপনা

import java.awt.*;
import java.awt.event.*;

public class PrintExample extends Frame {
    public PrintExample() {
        setTitle("AWT Print Example");
        setSize(400, 300);
        setVisible(true);

        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent we) {
                System.exit(0);
            }
        });
        
        // Print the contents of the window when pressing a key
        addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_P) {
                    printContent();
                }
            }
        });
    }

    public void printContent() {
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        PrintJob printJob = toolkit.getPrintJob(this, "AWT Print Example", null);
        
        if (printJob != null) {
            Graphics g = printJob.getGraphics();
            g.setColor(Color.BLACK);
            g.setFont(new Font("Arial", Font.PLAIN, 18));
            g.drawString("Hello, this is a printed message!", 100, 100);
            
            // Complete the print job
            g.dispose();
            printJob.end();
        } else {
            System.out.println("Print job could not be initiated.");
        }
    }

    public static void main(String[] args) {
        new PrintExample();
    }
}

ব্যাখ্যা:

  1. Toolkit: Toolkit.getDefaultToolkit() ব্যবহার করা হয় একটি PrintJob তৈরি করার জন্য। এটি আপনার সিস্টেমের ডিফল্ট প্রিন্টার রিসোর্সকে অ্যাক্সেস করে।
  2. PrintJob: toolkit.getPrintJob() মেথডটি একটি প্রিন্টিং কাজ শুরু করে। এটি একটি PrintJob অবজেক্ট প্রদান করে, যা প্রিন্টারের জন্য গ্রাফিক্স বা ডকুমেন্ট রেন্ডার করার জন্য ব্যবহার করা হয়।
  3. Graphics: প্রিন্টারের জন্য প্রিন্টিংয়ের সময় Graphics অবজেক্টে গ্রাফিক্স ড্রয়িং করা হয়। আপনি এখানে টেক্সট বা অন্য যেকোনো গ্রাফিক্স ড্র করতে পারেন।
  4. printJob.end(): প্রিন্টিং শেষ হলে, printJob.end() মেথডটি কল করে প্রিন্ট জব সম্পন্ন করতে হয়।

AWT PrintJob এবং Printing ব্যবস্থাপনা - অতিরিক্ত বৈশিষ্ট্য

  1. Paper Size: PrintJob ব্যবহার করে আপনি প্রিন্টিংয়ের জন্য পেপার সাইজ সেট করতে পারেন।
  2. PrintQuality: কিছু প্রিন্টার সেটিংসের মধ্যে প্রিন্ট কোয়ালিটি (যেমন, ডিফল্ট, হাই কোয়ালিটি ইত্যাদি) কনফিগার করার ক্ষমতাও থাকে।
  3. Multiple Pages: একাধিক পেজের জন্য প্রিন্টিং ব্যবস্থাপনা করতে হলে, আপনাকে পেজ বিভাজন এবং পেজের আউটপুট কন্ট্রোল করতে হবে।

AWT PrintJob এবং Graphics ব্যবস্থাপনা: অতিরিক্ত ধারণা

  1. Page Format: PrinterJob এবং PageFormat ব্যবহার করে আপনি প্রিন্টিংয়ের জন্য কাস্টম পেজ সাইজ, পেজ ওরিয়েন্টেশন (portrait/landscape) এবং মার্জিনগুলি কনফিগার করতে পারেন।
  2. PrinterJob: PrinterJob ক্লাসটি আরও উন্নত এবং নির্দিষ্ট প্রিন্টিং কনফিগারেশন করতে সহায়ক। এটি AWT PrintJob এর তুলনায় আরও অনেক ফিচার প্রদান করে।

উদাহরণ: PrinterJob ব্যবহার করে প্রিন্টিং

import java.awt.*;
import java.awt.print.*;

public class PrinterJobExample extends Frame implements Printable {
    public PrinterJobExample() {
        setTitle("PrinterJob Example");
        setSize(400, 300);
        setVisible(true);
    }

    @Override
    public int print(Graphics g, PageFormat pf, int page) {
        if (page > 0) {
            return NO_SUCH_PAGE;
        }
        
        // Set up the graphics for printing
        g.setColor(Color.BLACK);
        g.setFont(new Font("Arial", Font.PLAIN, 18));
        g.drawString("Hello, this is a printed message!", 100, 100);

        return PAGE_EXISTS;
    }

    public void startPrint() {
        PrinterJob printerJob = PrinterJob.getPrinterJob();
        printerJob.setPrintable(this);
        
        if (printerJob.printDialog()) {
            try {
                printerJob.print();
            } catch (PrinterException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        PrinterJobExample example = new PrinterJobExample();
        example.startPrint();
    }
}

ব্যাখ্যা:

  • Printable Interface: Printable ইন্টারফেসটি ব্যবহার করে প্রিন্টিং কাস্টমাইজ করতে হয়। print() মেথডে আপনি প্রিন্টিংয়ের জন্য গ্রাফিক্স সেট করতে পারেন।
  • PrinterJob: PrinterJob.getPrinterJob() মেথডটি একটি প্রিন্ট জব শুরু করে, এবং এটি printDialog() মেথডের মাধ্যমে প্রিন্টারের ডায়ালগে চলে যায়।
  • print(): প্রিন্টিং শুরু করতে printerJob.print() মেথড কল করা হয়।

AWT PrintJob ব্যবস্থাপনা - সুবিধা এবং সীমাবদ্ধতা

সুবিধা:

  1. সহজ সেটআপ: AWT PrintJob এবং PrinterJob ব্যবস্থাপনা সহজ এবং দ্রুত প্রিন্টিং সেটআপ তৈরি করতে সাহায্য করে।
  2. স্বয়ংক্রিয় প্রিন্টার ডায়ালগ: ব্যবহারকারীর জন্য প্রিন্টারের সেটিংস কনফিগার করার জন্য স্বয়ংক্রিয় প্রিন্টার ডায়ালগ প্রদর্শিত হয়।
  3. গ্রাফিক্স কাস্টমাইজেশন: প্রিন্টিংয়ের জন্য কাস্টম গ্রাফিক্স তৈরি করা সহজ।

সীমাবদ্ধতা:

  1. এডভান্সড কনফিগারেশন: কিছু উন্নত ফিচারের জন্য Swing বা JavaFX-এর মতো আধুনিক টুলকিট ব্যবহার করা ভালো হতে পারে।
  2. প্ল্যাটফর্ম ডিপেনডেন্সি: প্রিন্টিং প্ল্যাটফর্মের উপর নির্ভরশীল, তাই সব প্ল্যাটফর্মে সমান ফলাফল নাও পাওয়া যেতে পারে।

AWT PrintJob ব্যবস্থাপনা সহজ এবং কার্যকরী, তবে জটিল বা বড় আকারের ডকুমেন্ট প্রিন্টিংয়ের জন্য Java-এর আধুনিক টুলকিট যেমন PrinterJob ব্যবহারের পরামর্শ দেওয়া হয়।

Content added By

AWT (Abstract Window Toolkit) এ Printing এর মাধ্যমে আপনি Java অ্যাপ্লিকেশন থেকে কাস্টম প্রিন্টিং প্রক্রিয়া চালাতে পারেন। এটি মূলত PrintJob এবং PrinterJob ক্লাসের মাধ্যমে পরিচালিত হয়, যার সাহায্যে আপনি গ্রাফিক্স, টেক্সট এবং অন্যান্য কনটেন্ট প্রিন্ট করতে পারেন।

AWT Printing এর ভূমিকা:

Java অ্যাপ্লিকেশনগুলোর মধ্যে প্রিন্টিং খুবই গুরুত্বপূর্ণ হতে পারে, বিশেষ করে যখন ইউজারকে ডকুমেন্ট, রিপোর্ট বা কোনো কাস্টম গ্রাফিক্স প্রিন্ট করতে হয়। AWT PrintJob ক্লাসটি ব্যবহারকারীর মেশিনে প্রিন্টার ডিভাইসের সাথে যোগাযোগ করে এবং প্রিন্ট অপারেশন সম্পাদন করতে সহায়তা করে।

AWT-তে PrintJob ক্লাস সাধারণত পুরানো Java ভার্সনগুলির জন্য ব্যবহৃত হলেও, বর্তমানে PrinterJob ক্লাসটি বেশিরভাগ প্রিন্টিং টাস্কের জন্য বেশি ব্যবহৃত হয়।

PrintJob ক্লাস:

PrintJob ক্লাসটি ব্যবহারকারীর কম্পিউটারের প্রিন্টার ডিভাইসের সাথে যোগাযোগ করার জন্য একটি ইন্টারফেস সরবরাহ করে। এটি প্রিন্টিং সম্পর্কিত অপারেশনগুলো সম্পাদন করতে সহায়তা করে। PrintJob ক্লাসের মধ্যে প্রিন্টিংয়ের জন্য নিম্নলিখিত মেথড ব্যবহার করা হয়:

  • getGraphics(): এটি প্রিন্টিংয়ের জন্য Graphics অবজেক্ট প্রদান করে, যার মাধ্যমে আপনি প্রিন্টারে রেন্ডার করতে পারেন।
  • end(): প্রিন্ট কাজ শেষ হলে এই মেথডটি কল করা হয়।
  • getPageFormat(): প্রিন্ট পৃষ্ঠার জন্য প্রয়োজনীয় ফরম্যাট প্রদান করে।

PrintJob উদাহরণ:

import java.awt.*;
import java.awt.event.*;

public class PrintJobExample {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT PrintJob Example");

        Button printButton = new Button("Print");
        printButton.setBounds(50, 50, 100, 30);

        printButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                PrinterJob printerJob = PrinterJob.getPrinterJob();
                PrintJob printJob = Toolkit.getDefaultToolkit().getPrintJob(frame, "Printing Example", null);

                if (printJob != null) {
                    Graphics graphics = printJob.getGraphics();
                    if (graphics != null) {
                        graphics.drawString("Hello, this is a print job example!", 100, 100);
                        printJob.end();
                    }
                } else {
                    System.out.println("No printer found!");
                }
            }
        });

        frame.add(printButton);
        frame.setSize(300, 200);
        frame.setLayout(null);
        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  1. PrintJob অবজেক্ট তৈরি করা হয় Toolkit.getDefaultToolkit().getPrintJob() মেথড দিয়ে।
  2. প্রিন্টারের গ্রাফিক্স কনটেক্সট পাওয়ার জন্য getGraphics() মেথড ব্যবহার করা হয়।
  3. drawString() মেথড দিয়ে প্রিন্টার গ্রাফিক্সে টেক্সট রেন্ডার করা হয়।
  4. প্রিন্ট কাজ শেষ হলে end() মেথড কল করা হয়।

PrinterJob ক্লাস:

PrinterJob ক্লাসটি AWT এর বর্তমান প্রিন্টিং API-র প্রধান অংশ। এটি প্রিন্টিং অপারেশন নিয়ন্ত্রণের জন্য একটি সহজ এবং আধুনিক ইন্টারফেস সরবরাহ করে।

PrinterJob এর মেথডসমূহ:

  • print(): প্রিন্ট করার জন্য প্রধান মেথড। এটি PrinterException থ্রো করতে পারে।
  • setPrintable(Printable p): এটি একটি Printable অবজেক্ট সেট করে, যা প্রিন্টারকে কী প্রিন্ট করবে তা নির্দেশ করে।
  • printDialog(): প্রিন্টিং ডায়ালগ বক্স দেখানোর জন্য ব্যবহৃত হয়।

PrinterJob উদাহরণ:

import java.awt.*;
import java.awt.print.*;

public class PrinterJobExample {
    public static void main(String[] args) {
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        printerJob.setPrintable(new Printable() {
            public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException {
                if (pageIndex >= 1) {
                    return NO_SUCH_PAGE;
                }

                Graphics2D g2d = (Graphics2D) g;
                g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
                g2d.drawString("Hello, this is a test print using PrinterJob!", 100, 100);

                return PAGE_EXISTS;
            }
        });

        boolean doPrint = printerJob.printDialog();
        if (doPrint) {
            try {
                printerJob.print();
            } catch (PrinterException e) {
                e.printStackTrace();
            }
        }
    }
}

ব্যাখ্যা:

  1. setPrintable(): Printable অবজেক্টকে সেট করে, যা প্রিন্টারকে কী প্রিন্ট করতে হবে তা নির্দেশ করে।
  2. printDialog(): এটি প্রিন্টিং ডায়ালগ বক্স খুলে, ইউজারকে প্রিন্ট অপশন নির্বাচন করতে দেয়।
  3. print(): এটি আসল প্রিন্ট অপারেশন শুরু করে।

AWT PrintJob এবং PrinterJob এর মধ্যে পার্থক্য:

বৈশিষ্ট্যPrintJobPrinterJob
ব্যবহারপুরানো Java সংস্করণগুলিতে ব্যবহৃতবর্তমান Java প্রিন্টিং API
পদ্ধতিgetGraphics(), end()setPrintable(), print()
ডায়ালগপ্রিন্ট ডায়ালগ নেইপ্রিন্ট ডায়ালগ রয়েছে

AWT PrintJob এবং PrinterJob ক্লাসের মাধ্যমে Java অ্যাপ্লিকেশনে প্রিন্টিং কার্য সম্পাদন করা যায়। যদিও PrintJob ক্লাসটি পুরানো, তবে PrinterJob ক্লাসটি বর্তমান Java ভার্সনে আরও উন্নত এবং ফিচার-রিচ, যা প্রিন্টিং অপারেশন সহজ করে তোলে।

Content added By

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();
            }
        }
    }
}

কোডের ব্যাখ্যা

  1. Printable ইন্টারফেস: Printable ইন্টারফেস প্রিন্ট করার জন্য একটি print পদ্ধতি প্রদান করে। এই পদ্ধতিতে আপনি কাস্টম গ্রাফিক্স (যেমন, টেক্সট, আকার, ছবি ইত্যাদি) আঁকতে পারেন।
  2. Graphics2D: Graphics অবজেক্টে কাস্টম গ্রাফিক্স রেন্ডার করার জন্য এটি ক্যাস্ট করা হয়। Graphics2D ক্লাস গ্রাফিক্সের উপর আরো উন্নত রেন্ডারিং এবং ট্রান্সফরমেশন প্রদান করে।
  3. PrinterJob: PrinterJob ক্লাস প্রিন্টিং সেশন তৈরি করে। এটি প্রিন্ট ডায়ালগ খুলতে পারে এবং প্রিন্টার সিলেকশন পরিচালনা করতে পারে।
  4. PageFormat: এটি ডকুমেন্টের পৃষ্ঠা ফর্ম্যাট (যেমন পৃষ্ঠা আকার, মার্জিন) নির্ধারণ করতে ব্যবহৃত হয়।
  5. Printing Logic: Graphics2D.drawString() ব্যবহার করে পৃষ্ঠায় টেক্সট আঁকা হয়েছে। আপনি এখানে অন্যান্য গ্রাফিকাল উপাদানও আঁকতে পারেন, যেমন রেক্ট্যাঙ্গেল, সার্কেল, ইমেজ ইত্যাদি।

সারাংশ

AWT এর Graphics2D ক্লাস ব্যবহার করে Java-তে ডকুমেন্ট প্রিন্ট করা সহজ এবং কার্যকর। PrinterJob এবং Printable ইন্টারফেস ব্যবহার করে আপনি কাস্টম গ্রাফিক্স, টেক্সট, বা কোনো ডকুমেন্ট প্রিন্ট করতে পারেন। Java প্রিন্টিং API-টি গ্রাফিক্স প্রিন্টিংয়ের জন্য অত্যন্ত শক্তিশালী এবং নমনীয়।

Content added By

AWT (Abstract Window Toolkit) Java-তে GUI (Graphical User Interface) তৈরি করার জন্য ব্যবহৃত একটি লাইব্রেরি। এটি বিভিন্ন UI উপাদান যেমন বাটন, টেক্সট ফিল্ড, লেবেল ইত্যাদি তৈরি করতে সাহায্য করে। AWT তে প্রিন্টিং সম্পর্কিত কাজের জন্য PrintDialog এবং PrintPreview ব্যবহৃত হয়। এই দুটি ডায়ালগ ব্যবহার করে ব্যবহারকারী তাদের প্রিন্টার সেটিংস নির্বাচন এবং প্রিন্ট প্রিভিউ দেখতে পারে।


Print Dialog

PrintDialog ব্যবহার করে ব্যবহারকারীরা প্রিন্টার নির্বাচন এবং প্রিন্ট অপশন কনফিগার করতে পারে। এটি একটি ডায়ালগ বক্স যা প্রিন্টার সেটিংসের জন্য ব্যবহারকারীর ইনপুট নেয়।

PrintDialog উদাহরণ:

import java.awt.*;
import java.awt.event.*;
import javax.print.*;
import javax.swing.*;

public class PrintDialogExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Print Dialog Example");
        JButton printButton = new JButton("Print");

        printButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                PrinterJob printerJob = PrinterJob.getPrinterJob();
                if (printerJob.printDialog()) {
                    try {
                        printerJob.print();
                    } catch (PrinterException ex) {
                        ex.printStackTrace();
                    }
                }
            }
        });

        frame.setLayout(new FlowLayout());
        frame.add(printButton);
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

এখানে, PrinterJob.getPrinterJob() দিয়ে একটি প্রিন্টার কাজ শুরু করা হয় এবং printDialog() ব্যবহারকারীর কাছে প্রিন্টার সেটিংস চায়। যদি ব্যবহারকারী প্রিন্ট করতে সম্মত হন, তাহলে প্রিন্ট শুরু হয়।


Print Preview

PrintPreview ডায়ালগ AWT সরাসরি সরবরাহ করে না, তবে প্রিন্ট প্রিভিউ তৈরি করতে Printable ইন্টারফেস ব্যবহার করা হয়। এতে একটি print মেথড ইমপ্লিমেন্ট করে, যা প্রিন্ট করার আগে প্রিভিউ প্রদর্শন করতে সাহায্য করে।

Print Preview উদাহরণ:

import java.awt.*;
import java.awt.print.*;
import javax.swing.*;

public class PrintPreviewExample extends JFrame implements Printable {
    public PrintPreviewExample() {
        setTitle("Print Preview Example");
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
        if (page > 0) {
            return NO_SUCH_PAGE;
        }

        // Page drawing code
        Graphics2D g2d = (Graphics2D) g;
        g2d.translate(pf.getImageableX(), pf.getImageableY());
        g2d.drawString("This is the print preview!", 100, 100);

        return PAGE_EXISTS;
    }

    public static void main(String[] args) {
        PrintPreviewExample preview = new PrintPreviewExample();
        PrinterJob job = PrinterJob.getPrinterJob();
        job.setPrintable(preview);

        if (job.printDialog()) {
            try {
                job.print();
            } catch (PrinterException e) {
                e.printStackTrace();
            }
        }
    }
}

এখানে Printable ইন্টারফেসের print() মেথডে প্রিন্ট করার পূর্বে প্রিভিউ প্রদর্শন করা হয়। PrinterJob এবং printDialog() ব্যবহার করে প্রিন্টার সেটিংস নির্ধারণ এবং প্রিন্টিং করা হয়।


এই দুটি ডায়ালগ AWT তে প্রিন্টিং প্রক্রিয়া সহজ এবং ব্যবহারকারীর জন্য আরও সুবিধাজনক করে তোলে। PrintDialog ব্যবহারকারীকে প্রিন্ট সেটিংস কনফিগার করতে সাহায্য করে এবং PrintPreview ব্যবহার করে ব্যবহারকারী প্রিন্টের আগে দেখতে পারে কেমন হবে।

Content added By

AWT (Abstract Window Toolkit) একটি গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) লাইব্রেরি যা Java প্রোগ্রামিং ভাষায় ব্যবহৃত হয়। এটি বিভিন্ন ধরনের গ্রাফিক্যাল উপাদান যেমন বোতাম, টেক্সট ফিল্ড, চেকবক্স ইত্যাদি তৈরি করতে ব্যবহৃত হয়। তবে, AWT প্রিন্টিং সম্পর্কিত একটি গুরুত্বপূর্ণ ফিচারও প্রদান করে, যা ব্যবহারকারীদের কাস্টম প্রিন্টিং লেআউট (Custom Printing Layout) এবং পেজ ফরম্যাট (Page Format) কনফিগার করতে সহায়তা করে।


Custom Printing Layout

AWT-তে Custom Printing Layout ব্যবহার করে আপনি প্রিন্ট আউটের জন্য কাস্টম ডিজাইন তৈরি করতে পারেন। এটি মূলত PrinterJob ক্লাসের মাধ্যমে করা হয়। PrinterJob একটি জাভা ক্লাস যা আপনাকে প্রিন্টার নির্বাচন এবং প্রিন্টিং টাস্ক নির্ধারণ করতে সহায়তা করে। এই ক্লাসের মাধ্যমে আপনি প্রিন্টিং পেজের কন্টেন্ট এবং লেআউট কাস্টমাইজ করতে পারেন।

প্রিন্টিং লেআউট কাস্টমাইজ করার কিছু সাধারণ পদ্ধতি:

  1. PageFormat ক্লাস ব্যবহার: এই ক্লাসটি পেজের আকার, মার্জিন, এবং orientation কাস্টমাইজ করতে সহায়তা করে।
  2. Graphics এবং Graphics2D ক্লাস: এই ক্লাসগুলো ব্যবহার করে প্রিন্ট পেজে গ্রাফিক্স উপাদান যেমন লাইন, টেক্সট, এবং অন্যান্য আকৃতি আঁকতে পারেন।

Page Format

AWT-তে Page Format কাস্টমাইজ করার জন্য PageFormat ক্লাস ব্যবহার করা হয়। এটি প্রিন্টিং পেজের আকার এবং অন্যান্য বৈশিষ্ট্য যেমন মাপ এবং মার্জিন সেট করতে সাহায্য করে। আপনি যেকোনো পেজ সাইজ বা অরিয়েন্টেশন নির্বাচন করতে পারেন, যেমন ল্যান্ডস্কেপ বা পোর্ট্রেট।

PageFormat কাস্টমাইজ করার কিছু গুরুত্বপূর্ণ পয়েন্ট:

  1. Set Paper: এটি পেজের কাগজের আকার সেট করতে ব্যবহৃত হয়।
  2. Set Orientation: এটি পেজের অরিয়েন্টেশন (ল্যান্ডস্কেপ বা পোর্ট্রেট) নির্ধারণ করে।
  3. 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 কাস্টমাইজ করার মাধ্যমে আপনি আপনার প্রিন্ট আউটকে সম্পূর্ণ নিজের মতো করে ডিজাইন করতে পারেন, যা অনেক ধরনের প্রিন্টিং টাস্কে উপকারী হতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...