Fórum Enviar pdf jasper diretamente para impressora. #536368
04/11/2015
0
Tenho uma classe para gerar um pdf usando jasper reports, dá maneira atual ela delega ao navegador a impressão e os usuários podem imprimir quantas cópias quiserem.
Acontece que em meu atual cenário a impressão deve ser única, o relatório sempre tem uma só página.
Atualmente está assim:
Tentei com o trecho abaixo mas dá o erro: Invalid page index range : 1 - 1 of 1
Acontece que em meu atual cenário a impressão deve ser única, o relatório sempre tem uma só página.
Atualmente está assim:
public class UtilRelatorios {
public static void imprimeRelatorio(String relatorioNome,
HashMap parametros) throws IOException, JRException {
FacesContext fc = FacesContext.getCurrentInstance();
ServletContext context = (ServletContext) fc.getExternalContext().getContext();
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
JasperPrint jasperPrint =
JasperFillManager.fillReport(
context.getRealPath("/relatorios")+ File.separator+relatorioNome+".jasper",
parametros);
byte[] b = null;
try {
b = JasperExportManager.exportReportToPdf(jasperPrint);
} catch (Exception e) {
e.printStackTrace();
} finally {
}
if (b != null && b.length > 0) {
// Envia o relatório em formato PDF para o browser
response.setContentType("application/pdf");
int codigo = (int) (Math.random()*1000);
response.setHeader("Content-disposition","inline);filename=relatorio_"+codigo+".pdf");
response.setContentLength(b.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(b, 0, b.length);
ouputStream.flush();
ouputStream.close();
}
}
}
Tentei com o trecho abaixo mas dá o erro: Invalid page index range : 1 - 1 of 1
int finalPag = jasperPrint.getPages().size();
System.out.println("page: "+finalPag);
JasperPrintManager.printPage(jasperPrint,finalPag,false);
Cássia Freitas
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)