Bastava fare al posto di:
1) Ho creato una classe contenente un pannello e che implementa la classe Printable. Nel pannello ho inserito un pulsante "Stampa", al quale ho associato il seguente evento:
codice:
PrintJob stamp = Toolkit.getDefaultToolkit().getPrintJob(new NewFatt(),"Stampa",null);
printAll(stamp.getGraphics());
stamp.end();
codice:
PrinterJob job = PrinterJob.getPrinterJob();
PageFormat pageFormat = new PageFormat();
Paper paper = new Paper();
paper.setSize(597.6, 842.4);
paper.setImageableArea(0, 0, 597.6, 842.4);
pageFormat.setPaper( paper );
job.setCopies(2);
pageFormat = job.validatePage( pageFormat );
job.setPrintable( this, pageFormat );
if (job.printDialog()) {
try {
job.print();
} catch (Exception ex) {
System.out.println(ex);
}
}
dove ho impostato il numero di copie a due ed è possibile anche impostare l'orientamento della pagina in orizzontale, mettendo la riga di codice:
codice:
pageFormat.setOrientation(PageFormat.LANDSCAPE);
Invece per quanto concerne il metodo print:
codice:
public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {
if (pi > 0) {
return Printable.NO_SUCH_PAGE;
}
this.paint(g);
return Printable.PAGE_EXISTS;
}
Speriamo che possa servire a qualcuno.
Ciao