private void generaReporte(String tipo, List<Entrada> entradas, HttpServletResponse response) throws JRException, IOException { log.debug("Generando reporte {}", tipo); byte[] archivo = null; switch (tipo) { case "PDF": archivo = reporteUtil.generaPdf(entradas, "/mx/edu/um/mateo/inventario/reportes/entradas.jrxml"); response.setContentType("application/pdf"); response.addHeader("Content-Disposition", "attachment; filename=entradas.pdf"); break; case "CSV": archivo = reporteUtil.generaCsv(entradas, "/mx/edu/um/mateo/inventario/reportes/entradas.jrxml"); response.setContentType("text/csv"); response.addHeader("Content-Disposition", "attachment; filename=entradas.csv"); break; case "XLS": archivo = reporteUtil.generaXls(entradas, "/mx/edu/um/mateo/inventario/reportes/entradas.jrxml"); response.setContentType("application/vnd.ms-excel"); response.addHeader("Content-Disposition", "attachment; filename=entradas.xls"); } if (archivo != null) { response.setContentLength(archivo.length); try (BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream())) { bos.write(archivo); bos.flush(); } } }
private void enviaCorreo(String tipo, List<Entrada> entradas, HttpServletRequest request) throws JRException, MessagingException { log.debug("Enviando correo {}", tipo); byte[] archivo = null; String tipoContenido = null; switch (tipo) { case "PDF": archivo = reporteUtil.generaPdf(entradas, "/mx/edu/um/mateo/inventario/reportes/entradas.jrxml"); tipoContenido = "application/pdf"; break; case "CSV": archivo = reporteUtil.generaCsv(entradas, "/mx/edu/um/mateo/inventario/reportes/entradas.jrxml"); tipoContenido = "text/csv"; break; case "XLS": archivo = reporteUtil.generaXls(entradas, "/mx/edu/um/mateo/inventario/reportes/entradas.jrxml"); tipoContenido = "application/vnd.ms-excel"; } MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setTo(ambiente.obtieneUsuario().getUsername()); String titulo = messageSource.getMessage("entrada.lista.label", null, request.getLocale()); helper.setSubject( messageSource.getMessage( "envia.correo.titulo.message", new String[] {titulo}, request.getLocale())); helper.setText( messageSource.getMessage( "envia.correo.contenido.message", new String[] {titulo}, request.getLocale()), true); helper.addAttachment(titulo + "." + tipo, new ByteArrayDataSource(archivo, tipoContenido)); mailSender.send(message); }