Avatar billede musiigedeo Nybegynder
11. juli 2007 - 11:32 Der er 1 kommentar og
1 løsning

Print in java

Hey gutter
Er der nogen der har en kode der kan printe indeholdet af en appalication på en printer?
Avatar billede musiigedeo Nybegynder
11. juli 2007 - 12:27 #1
Jeg bruger koden nedunder men jeg får kun det der er visible. Jeg vil have altid i applicationen
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.awt.print.*;

public class Printer implements Printable, ActionListener {

    //JFrame frameToPrint;
    JScrollPane pane;
    //public Printer(JFrame f) {
    public Printer(JScrollPane p) {
        pane = p;
    }

    public int print(Graphics g, PageFormat pf, int page) throws
                                                        PrinterException {

        if (page > 0) { /* We have only one page, and 'page' is zero-based */
            return NO_SUCH_PAGE;
        }

        /* User (0,0) is typically outside the imageable area, so we must
        * translate by the X and Y values in the PageFormat to avoid clipping
        */
        Graphics2D g2d = (Graphics2D)g;
        g2d.translate(pf.getImageableX(), pf.getImageableY());

        /* Now print the window and its visible contents */
        //frameToPrint.printAll(g);
        pane.printComponents(g);
        /* tell the caller that this page is part of the printed document */
        return PAGE_EXISTS;
    }

    public void actionPerformed(ActionEvent e) {
        PrinterJob job = PrinterJob.getPrinterJob();
        job.setPrintable(this);
        boolean ok = job.printDialog();
        if (ok) {
            try {
                  job.print();
            } catch (PrinterException ex) {
              /* The job did not successfully complete */
            }
        }
    }

    public static void main(String args[]) {
        UIManager.put("swing.boldMetal", Boolean.FALSE);
        JFrame f = new JFrame("Print UI Example");
        f.addWindowListener(new WindowAdapter() {
          public void windowClosing(WindowEvent e) {System.exit(0);}
        });
        JTextArea text = new JTextArea(50, 20);
        for (int i=1;i<=100;i++) {
            text.append("Line " + i + "\n");
        }
        JScrollPane pane = new JScrollPane(text);
        pane.setPreferredSize(new Dimension(250,200));
        f.add("Center", pane);
        JButton printButton = new JButton("Print This Window");
        printButton.addActionListener(new Printer(pane));
        f.add("South", printButton);
        f.pack();
        f.setVisible(true);
    }
}
Avatar billede musiigedeo Nybegynder
29. juli 2007 - 13:25 #2
Jeg fået løsning, jeg ligger det her snart
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester