Avatar billede skeleton Nybegynder
30. november 2001 - 13:31 Der er 1 kommentar og
1 løsning

Print i java

Hvordan printer man fra java.???

Hvis jeg har en string \"Halo\" som jeg gerne vil have printet på en printer.
Avatar billede runberg Nybegynder
30. november 2001 - 13:34 #1
At printe fra java er bestemt ikke nemt, da man skal konvertere al sin tekst og hele tiden skrive kommandoer til printeren, for at tjekke om der er mere plads på papiret osv.

Jeg mener dog at der tidligere har været et spørgsmål om dette her på eksperten. Jeg har i hvert fald diskuteret emnet herinde før.
Avatar billede carstenknudsen Nybegynder
30. november 2001 - 14:57 #2
Hvis du tegner din streng i en komponent er det let
at printe det, her en en klasse der kan bruges. Den
nemmeste måde at bruge den på er at kalde
makePrintable(component) og så taste ctrl-p
i den komponent, så får du en menu til
at snakke med printeren.

/**
* Class ComponentPrinter allows a component to be printed.
* <BR>
* The static method {@link #makePrintable(Component)} allows
* a Component to be printed with the ctrl-p key sequence.
* <BR>
* To print a component from itself use code like the follwing:
* <BR><B>Example of use:</B><BR>
* <PRE>
*      ComponentPrinter printer = new ComponentPrinter( this );
*      try {
*          printer.print();
*      }
*      catch( PrinterException e ) {
*          System.out.println( \"PrinterException = \" + e );
*      }
* </PRE>
* @author Carsten Knudsen
* @version 1.0
*/
public class ComponentPrinter implements Printable {
    private Component c;
    /**
    * Constructor for class ComponentPrinter that
    * takes a Component as an argument.
    * @param c Component that we wish to print.
    **/
    public ComponentPrinter( Component c ) {
        this.c = c;
    } // constructor

    /**
    * The method print sets up the PrinterJob.
    **/
    public void print() throws PrinterException {
        PrinterJob job = PrinterJob.getPrinterJob();
        PageFormat format = job.pageDialog( job.defaultPage() );
        job.setPrintable( this, format );
        if ( job.printDialog() )
            job.print();
    } // print

    /**
    * The method print is called by PrinterJob.
    **/
    public int print( Graphics g, PageFormat format, int pagenum ) {
        if ( pagenum > 0 )
            return Printable.NO_SUCH_PAGE;
        Graphics2D g2 = (Graphics2D)g;
        g2.translate( format.getImageableX(), format.getImageableY() );
        c.paint( g2 );
        return Printable.PAGE_EXISTS;
    } // print

    /**
    * The static method makePrintable registers a key listener on
    * the component, and when the user presses ctrl-p key the
    * contents can be printed directly on a printer.
    **/
    public static void makePrintable( final Component c ) {
        c.addKeyListener( new KeyAdapter() {
                public void keyPressed( KeyEvent e ) {
                    if ( e.getKeyCode() == KeyEvent.VK_P && e.isControlDown() )
{
                        ComponentPrinter printer = new ComponentPrinter( c );
                        try {
                            printer.print();
                        } // try
                        catch ( PrinterException pe ) {
                        } // catch
                    } // if
                } // keyPressed
            } // KeyAdapter
                          );
    } // makePrintable

} // ComponentPrinter
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