ioel10 yo tambien utilizo el ireport para imprimir como vos, pero yo lo que quiero hacer es que l reporte no muestre la pantalla de impresion, sino que directamente lo mande a la impresora, he probado el siguiente codigo y demora los 5 min que digo, pensando que era por reporte queria`probar el otro ejemplo pero tambien demora, por eso creo que es algo que tiene que ver con configuraciones o no se qué , ya no se que mas probar, mirá yo acá te paso el codigo que uso para enviar el reporte directamente a la impresora:
Código:
.......aca viene lo de los parametros, compilar reporte, que es como me lo pasaste
JasperPrint jasperprint= JasperFillManager.fillReport(reporte,parameters,data);
esto era lo que tenia antes pero quiero que se vea la pantalla, sino que se imprima directamente
// JasperViewer visor=new JasperViewer(jasperprint,false);
// visor.setTitle("Factura Cumelem");
//visor.viewReport(jasperprint);
// visor.setVisible(true);
// metodo para exportar a impresora la impresion del report
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
PrintService impressora = PrintServiceLookup.lookupDefaultPrintService();
printRequestAttributeSet.add(new Copies(1));
JRPrintServiceExporter exporter = new JRPrintServiceExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperprint);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, printRequestAttributeSet);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET,impressora.getAttributes());
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.FALSE);
exporter.checkAvailablePrinters();
exporter.exportReport();