Você está na página 1de 1

protected void printRelatorio(String pRel, String pSubRel, Map<String, Object>

pParametros, List pDataSource, List pSubDataSource) {

ServletContext lContext = (ServletContext)


FacesContext.getCurrentInstance().getExternalContext().getContext();

String lPath = lContext.getRealPath(pRel);


JasperReport lJr = (JasperReport) JRLoader.loadObject(lPath);
JRBeanCollectionDataSource lJrds = new
JRBeanCollectionDataSource(pDataSource);

if (!pSubRel.isEmpty()) {

String lPathSub = lContext.getRealPath(pSubRel);


pParametros.put("SUBREPORT_DIR", lPathSub);
pParametros.put("SUB_DATA_SOURCE", pSubDataSource);
}

JasperPrint lPrint = JasperFillManager.fillReport(lJr, pParametros, lJrds);

// IMPRIME APENAS NA IMPRESSORA DO SERVIDOR, MAS SAI OS DADOS


JasperPrintManager.printReport(lPrint, false);

// IMPRIME NA IMPRESSORA LOCAL DO CLIENTE, MAS SAI EM BRANCO


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();
if (existingPrinter.equals("TLP2844")) {
selectedService = service;
break;
}
}

if (selectedService != null) {
try {
printerJob.setPrintService(selectedService);
} catch (PrinterException e) {
e.printStackTrace();
}
boolean printSucceed = JasperPrintManager.printReport(lPrint,
false);
}
}
}

Você também pode gostar