Pessoal boas, estou gerando relatórios no formato pdf, acontece que ao salvar ele salva no formato xhtml e não pdf como é gerado.
Caminho,
Relatório
Pessoal boas, estou gerando relatórios no formato pdf, acontece que ao salvar ele salva no formato xhtml e não pdf como é gerado.
Caminho,
Relatório
Posta o código que está utilizando para gerar e retornar o pdf para o usuário.
public void relatorioExtrato() {
byte[] bytes = null;
try {
Connection conn = null;
conn = this.conexao.getConnection();
//OutputStream saida = new FileOutputStream("teste.pdf");
FacesContext context = FacesContext.getCurrentInstance();
context.responseComplete();
ServletContext scontext = (ServletContext) context.getExternalContext().getContext();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
//load report location
FileInputStream fis = new FileInputStream(scontext.getRealPath("/WEB-INF/Relatorios/Contabilidade/extrato.jasper"));
BufferedInputStream bufferedInputStream = new BufferedInputStream(fis);
JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject(bufferedInputStream);
Map<String, Object> parametros = new HashMap();
parametros.put("codigoConta", codigoConta);
parametros.put("REPORT_CONNECTION",conn);
parametros.put("SUBREPORT_DIR","/home/banguela/NetBeansProjects/SIGHP/SIGHP-war/web/WEB-INF/Relatorios/Contabilidade/subReportExtrato.jasper");
parametros.put("SUBREPORT_DIR","/home/banguela/NetBeansProjects/SIGHP/SIGHP-war/web/WEB-INF/Relatorios/Contabilidade/subReportExtratoTwo.jasper");
bytes = JasperRunManager.runReportToPdf(relatorioJasper, parametros, conn);
if (bytes != null && bytes.length > 0) {
// envia o relatório em formato PDF para o browser
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
response.setHeader("Content-Disposition", "attachment; filename=\"extrato.pdf\"");
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
} catch (JRException ex) {
ex.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
//connection.close();
}
}