Bom dia pessoa estou com um probleminha aqui com o IReport minha aplicação esta gerando o PDF no browser só que o que preciso é que ele abra a caixa tipo (Download / abrir ) Eu consegui fazer isso usando o:
response.setContentType("application/download");
Só que ele não reconhece o arquivo como PDF ele abra a caixa de download como arquivo desconhecido
se alguem poder ajudar agradeço
Codigo:
[code] public static void execute(ServletContext context, HttpServletRequest request, HttpServletResponse response) {
byte[] bytes = null;
HashMap<String, Object> parametros = new HashMap<String, Object>();
File reportFile = new File(context.getRealPath("WEB-INF//relatorios//formulario"));
try {
SolicitacaoCadastroForm formulario = (SolicitacaoCadastroForm) request.getSession().getAttribute("formulario");
try {
List<SolicitacaoCadastroForm> listaFormulario = new ArrayList<SolicitacaoCadastroForm>();
listaFormulario.add(formulario);
// PARAMETROS
parametros.put("imagemTopo", getInputStreamImagemTopo(context));
bytes = JasperRunManager.runReportToPdf(reportFile.getPath() + "//relatorio_solicitacao_formulario.jasper", parametros, new JRBeanCollectionDataSource(listaFormulario));////relatorio_denuncia_geral.jasper", parametros, new JRBeanCollectionDataSource(listaDesaparecido));
} catch (Exception e) {
e.printStackTrace();
return;
}
if (bytes != null && bytes.length > 0) {
response.setContentType("application/download");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
[/code]
warley
Maio 18, 2010, 1:57pm
#2
Fala cara…
Este código faz isto. Eu uso na minha aplicação
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
// Obtem o contexto
ServletContext context = getServletContext();
HttpSession session = request.getSession(true);
ExtratoIR extratoIR = (ExtratoIR)session.getAttribute("controleExtratoIR");
//Nome do arquivo
String fileName = "relatorioExtratoIR.pdf";
String aplicpath = context.getRealPath("/");
try {
//Obtem as informações do Usuário
UsuarioTO to = (UsuarioTO)session.getAttribute("usuario");
// carrega os arquivos jasper
JasperReport relatorioJasper = (JasperReport)JRLoader.loadObject(context.getRealPath("/relatorios/realtorioExtratoBeneficiarioIR.jasper"));
//Obtem da sessão a lista de recibos do reembolso
List<ReciboIRTO> listaReembolso = extratoIR.getListaReembolso();
//Obtem as informações do total do reembolso
TotalReciboIRTO totalReciboIRTO = extratoIR.getTotalReciboIRTO();
String participacao = extratoIR.getParticipacao();
JRBeanCollectionDataSource beanDataSource = new JRBeanCollectionDataSource(listaReembolso);
//Parâmetros do relatório
Map parametros = new HashMap();
parametros.put("aplicpath", aplicpath);
parametros.put("matricula", to.getMatricula());
parametros.put("titular", to.getNome());
parametros.put("lotacao", to.getDescricaoLotacao());
parametros.put("participacao", participacao);
parametros.put("anoBase", extratoIR.getAno());
parametros.put("totalReciboIRTO", totalReciboIRTO);
byte[] file = JasperRunManager.runReportToPdf(relatorioJasper,parametros, beanDataSource);
response.setContentType("application/pdf");
response.setContentLength(file.length);
response.addHeader("Content-Disposition", "attachment; filename=" + "\"" + fileName + "\"");
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(file, 0, file.length);
outputStream.flush();
outputStream.close();
} catch (Exception e) {
System.out.println("EROO: "+ e.getMessage());
}
}
warley
Maio 18, 2010, 1:58pm
#3
Acho q no seu código só faltou isto:
[quote=warley]
Acho q no seu código só faltou isto:
[quote]
response.addHeader(“Content-Disposition”, “attachment; filename=” + “”" + fileName + “”");
[/quote][/quote]
Certo vou tentar usar.
[quote=guilherme2109][quote=warley]
Acho q no seu código só faltou isto:
[quote]
response.addHeader(“Content-Disposition”, “attachment; filename=” + “”" + fileName + “”");
[/quote][/quote]
Certo vou tentar usar.[/quote]
Cara era apenas isso mesmo
Vlwwwwwwww!!!