title: Select printer in Java to print JasperReport
body: <p>Im trying to print JasperReport to specific printer in Java. I found this code but it doesnt work.</p>
  
  <pre><code>public void print(JasperPrint jp, String impresora) {
  
      try {
          // TODO Auto-generated method stub
          PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
          // printRequestAttributeSet.add(MediaSizeName.ISO_A4); //setting page size
          printRequestAttributeSet.add(new Copies(1));
  
          PrinterName printerName = new PrinterName(impresora, null); //gets printer
  
          PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
          printServiceAttributeSet.add(printerName);
  
          JRPrintServiceExporter exporter = new JRPrintServiceExporter();
  
          exporter.setParameter(JRExporterParameter.JASPER_PRINT, jp);
          exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, printRequestAttributeSet);
          exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, printServiceAttributeSet);
          exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
          exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.FALSE);
          exporter.exportReport();
      } catch (JRException ex) {
          JOptionPane.showMessageDialog(null, "Cancelo Impresion");
      }
  }
  </code></pre>
  
  <p>Does anyone know how to send the report to specific printer?</p>
  
  <p>Note: I know the name of the printer so i dont need to navigate arround system printers to find the target printer.</p>
  
  <p>Thanks you very much.</p>