Ho un pulsante nella pagina jsp che quando premuto deve stampare un biglietto nella stampante predefinita del client senza aprire la finestra di dialogo questa è la servlet:
if ( tipo.equals("1"))
{ System.out.println("Scelta: SERVIZI POSTALI");
RequestDispatcher view = request.getRequestDispatcher("EliminaCodePulsanti.jsp");
view.forward(request, response);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String data = sdf.format(new Date()); //Variabile Data
LocalTime ora=java.time.LocalTime.now (); //Variabile ora
String servizio= "SERVIZI POSTALI"; // Variabile Servizio
String messaggio="benvenuti";
try {
eliminacode.Connessione.inserisciPrenotazione(data, ora, servizio);
//-------- STAMPA IL BIGLIETTO
eliminacode.Stampa stampaBiglietto =new eliminacode.Stampa();
stampaBiglietto.setServizio(servizio);
stampaBiglietto.setMessaggio(messaggio);
stampaBiglietto.setOra(ora.toString());
eliminacode.Connessione x=new eliminacode.Connessione();
int id =x.ultimoId();
String id_=Integer.toString(id);
stampaBiglietto.setId(id_);
stampaBiglietto.stampaBiglietto();
//------------------FINE -----------------
} catch (SQLException | PrinterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
e questa e la classe stampa
import java.awt.Color;
import java.awt.Desktop;
import java.awt.Font;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.time.LocalTime;
import java.util.ArrayList;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
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()+30,
(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()+10,
(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()+50,
(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()+10,
(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()+10,
(int)pageFormat.getImageableY()+145);
grap.setColor(Color.black);
grap.drawString(ora, (int)pageFormat.getImageableX()+30,
(int)pageFormat.getImageableY()+160);
//-------------------
grap.setColor(Color.black);
grap.drawString(messaggio, (int)pageFormat.getImageableX()+10,
(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;
}
}