I use Java to create report with JasperReports. What i want to do is that user be able to print directly, without print dialog.
I create JasperPri
I solved it as below, hopefully it helps someone else.
public class PrintApp {
public static void print() {
JasperPrint jasperPrint = getJasperPrint();
String selectedPrinter = AllPrinter.getDepartmentPrinter("Admin");
PrinterJob printerJob = PrinterJob.getPrinterJob();
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
PrintService selectedService = null;
if(services.length != 0 || services != null)
{
for(PrintService service : services){
String existingPrinter = service.getName().toLowerCase();
if(existingPrinter.equals(selectedPrinter))
{
selectedService = service;
break;
}
}
if(selectedService != null)
{
printerJob.setPrintService(selectedService);
boolean printSucceed = JasperPrintManager.printReport(mainPrint, false);
}
}
private static JasperPrint getJasperPrint() {
return JasperPrinterCreator.getJasperprint();
}
}