Stampare su carta con Java

DOMANDA:

Come posso effettuare la stampa in Java?


RISPOSTA:

Java mette a disposizione delle librerie che fanno a caso nostro e, come vedete dall'esempio di seguito, è molto semplice interfacciarsi con la nostra stampante:

La classe Stampa:

package stampa;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class Stampa implements Printable {


 public Stampa() throws PrinterException{
   PrinterJob pj = PrinterJob.getPrinterJob();
   pj.setJobName("TestStampa");
   // apriamo la finestra di dialogo della stampante
   pj.printDialog();

   pj.setPrintable(this);
   pj.print();
 }

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

   // abbiamo solo una pagina
   // (l'indicizzate da 0)
   if (page > 0) {
      return NO_SUCH_PAGE;
   }

   // Posizioniamo correttamente le coordinate
   // da dove cominciare a disegnare
   Graphics2D g2d = (Graphics2D) g;
   g2d.translate(pf.getImageableX(), pf.getImageableY());

   // Rendering
   g2d.drawString("Stampato con Java dal blog di Lancill! " +
                "Vieni a trovarmi su http://lancill.blogspot.it",
                50, 250);

   // comunica che questa pagina è
   // parte del documento stampato
   return PAGE_EXISTS;
 }
}

La classe di Test:

package stampa;

import java.awt.print.PrinterException;

public class TestStampa{

   public static void main(String[] args) throws PrinterException {
        Stampa st = new Stampa();
   }
}

Commenti

  1. Ottimo esempio. Seguite questo per risolvere i vostri problemi di stampa. Bravissimo

    RispondiElimina
  2. Ciao avrei un problema con la stampa, in pratica devo stampare il contenuto di un panel e lo passo alla classe di stampa come oggetto, il problema è che se stampo in pdf funziona bene, mentre se stampo sulla stampante mi stampa solo il primo label presente nel panel e il resto pagina bianca. Sapresti aiutarmi?

    RispondiElimina
    Risposte
    1. Ciao, se puoi invia il pezzo di codice incriminato così possiamo aiutarti meglio! Intanto grazie per la visita :o)

      Elimina

Posta un commento

Post popolari in questo blog

Arrotondamento e troncamento in Java

Eclipse: Shortcuts (scorciatoie) da tastiera

Strutture dati: List, Set, Map

Creare un eseguibile Java