Classe java Stampa scontrino

di il
2 risposte

Classe java Stampa scontrino

Salve a tutti, ho un "piccolo" problema, ho creato una classe che dovrebbe stampare uno scontrino per un elimina-code ma, con il foglio A4 funziona perfettamente con la stampante 58mm termica mi stampa dentro un piccolo spazio e se annullo la stampa lo scontrino esce ugualmente con la stampa dello scontrino sfasata allego la classe. Penso che sia un problema di margini ma non so dove inserirli e come calcolarli qualcuno mi può aiutare
public class Stampa implements Printable{
		String ora="null";
	    String id="null";
	    String messaggio="null";
		String servizio="null";
	    public void setOra(String ora) {
			this.ora = ora;
		}

		public void setId(String id) {
			this.id = id;
		}

		public void setMessaggio(String messaggio) {
			this.messaggio = messaggio;
		}

		
		public void setServizio(String servizio) {
			this.servizio = servizio;
		}

		public void stampaBiglietto() throws IOException, SQLException, PrinterException
		{
			 PrinterJob pj = PrinterJob.getPrinterJob();
			 pj.printDialog();
			pj.setJobName("Stampa biglietto");	
			  pj.setPrintable(this);
			  pj.print();	
		}

		@Override
		public int print(Graphics grap, PageFormat pageFormat, int pageIndex) throws PrinterException {
			// TODO Auto-generated method stub
			if(pageIndex > 0)
			    return NO_SUCH_PAGE;
			Font f = new Font("Helvetica", Font.BOLD, 20);
			grap.setFont(f);
			grap.setColor(Color.RED);
			grap.drawString("FALZONE SRL", (int)pageFormat.getImageableX()-9,
			   (int)pageFormat.getImageableY()+20);
			//-------------------
			f = new Font("Helvetica", Font.PLAIN, 10);
			grap.setFont(f);
			grap.setColor(Color.black);
			grap.drawString("NUMERO ASSEGNATO", (int)pageFormat.getImageableX()+1,
			   (int)pageFormat.getImageableY()+40);
			grap.setColor(Color.black);
			f = new Font("Helvetica", Font.BOLD, 70);
			grap.setFont(f);
			grap.setColor(Color.black);
			grap.drawString(id, (int)pageFormat.getImageableX()+8,
			   (int)pageFormat.getImageableY()+100);
			
			//-------------------
			f = new Font("Helvetica", Font.PLAIN, 10);
			grap.setFont(f);
			grap.setColor(Color.black);
			grap.drawString("SERVIZIO RICHIESTO", (int)pageFormat.getImageableX()+2,
			   (int)pageFormat.getImageableY()+115);
			f = new Font("Helvetica", Font.BOLD, 15);
			grap.setFont(f);
			grap.drawString(servizio, (int)pageFormat.getImageableX()+30,
					   (int)pageFormat.getImageableY()+130);
			//-------------------
			f = new Font("Helvetica", Font.PLAIN, 10);
			grap.setFont(f);
			grap.setColor(Color.black);
			grap.drawString("ORA DI ARRIVO", (int)pageFormat.getImageableX()+2,
			   (int)pageFormat.getImageableY()+145);
			grap.setColor(Color.black);
			grap.drawString(ora, (int)pageFormat.getImageableX()+8,
			   (int)pageFormat.getImageableY()+160);
			//-------------------
			
			grap.setColor(Color.black);
			grap.drawString(messaggio, (int)pageFormat.getImageableX()+1,
			   (int)pageFormat.getImageableY()+175);
			
			//grap.setColor(Color.GREEN);
			//grap.drawLine((int)pageFormat.getImageableX(), (int)pageFormat.getImageableY(), 
			  // (int)pageFormat.getImageableWidth(), (int)pageFormat.getImageableHeight());      

			return PAGE_EXISTS;
		}

	}

2 Risposte

  • Re: Classe java Stampa scontrino

    robyn78 ha scritto:


    se annullo la stampa lo scontrino esce ugualmente
    Perché hai fatto il pj.print() incondizionatamente dopo il printDialog().

    Generalmente si fa invece:
    ......
    if (pj.printDialog()) {
        pj.print();
    }
    Ovvero solo se l'utente conferma (e non annulla) allora avvia la stampa.
  • Re: Classe java Stampa scontrino

    Si hai ragione è per questo anche se annullavo la stampa il comando veniva ignorato, mentre per dare i parametri per la stampa mi sai aiutare ho magari mi dici dove trovare del materiale da studiare non trovo niente sui metodi di stampa grazie
Devi accedere o registrarti per scrivere nel forum
2 risposte