ERVER
Dezembro 17, 2012, 1:33pm
#1
Boa tarde pessoal,
To terminando de testar meu primeiro projeto web (com Java + Spring MVC), e estou gerando criando os Relatórios com o IReports, e utilizando o Jasper Viewer para exibir os relatórios.
Porém, durante os testes, deixei uma maquina rodando centos para acesso da rede interna, e quando o relatório é aberto para visualização, é aberto pelo Jasper Viewer dentro do servidor, e não dentro da máquina dos usuários que estão utilizando o sistema.
Como faço para exibir esses relatórios nas máquinas dos usuários do sistema?
Grato desde já, abraços.
Você precisa criar um servlet para atender uma requisição e devolver um pdf para o navegador do cliente…
ERVER
Dezembro 18, 2012, 2:29pm
#3
Boa tarde,
Primeiramente, muito obrigado pela ajuda e atenção.
Você tem algum exemplo de como faço isso? Sei que tenho que usar a classe HttpServletResponse pra gerar a saída pro browser do cliente, passando um array de bytes do relatório.
Tô apanhando justo nisso, na hora de carregar o relatório pra um array de bytes.
Muito obrigado novamente.
Abraços.
ERVER
Dezembro 18, 2012, 2:59pm
#4
Consegui, porém, não funciona no Internet Explorer 8 (apenas no Chrome e Firefox)
Código:
[code]//gerando o relatório para impressão
String caminho = request.getServletContext().getRealPath("/WEB-INF/relatorios/relatorio_mysql.jasper");
try {
JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject(caminho);
Map<String, Object> parametro = new HashMap<String, Object>();
parametro.put("parametro_id_lote", lote.getIdLote());
byte[] bytes = null;
bytes = JasperRunManager.runReportToPdf(relatorioJasper, parametro, connection);
if (bytes != null && bytes.length > 0) {
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream;
try {
ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}[/code]
Quando chamo o relatório no Internet Explorer, ele não abre o pdf, deixando a parte de visualização do html cinza, com nada dentro.
Alguem já passou por esse mesmo problema?
Abraços.
[quote=$ERVER]Consegui, porém, não funciona no Internet Explorer 8 (apenas no Chrome e Firefox)
Código:
[code]//gerando o relatório para impressão
String caminho = request.getServletContext().getRealPath("/WEB-INF/relatorios/relatorio_mysql.jasper");
try {
JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject(caminho);
Map<String, Object> parametro = new HashMap<String, Object>();
parametro.put("parametro_id_lote", lote.getIdLote());
byte[] bytes = null;
bytes = JasperRunManager.runReportToPdf(relatorioJasper, parametro, connection);
if (bytes != null && bytes.length > 0) {
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream;
try {
ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}[/code]
Quando chamo o relatório no Internet Explorer, ele não abre o pdf, deixando a parte de visualização do html cinza, com nada dentro.
Alguem já passou por esse mesmo problema?
Abraços.[/quote]
Não estou vendo nada aparentemente errado no seu código não… Não poderia ser plugin do reader nestes navegadores?
Além disso, em alguns navegadores, a janela com pdf abre em um pop-up, ao invés de nova aba… já verificou o bloqueador de pop-ups também???
ERVER
Dezembro 18, 2012, 4:17pm
#6
Boa tarde rodrigomarcelo,
Realmente IE e Firefox estão com problema para visualizar outros pdf.
Vou atualizar o adobe reader aqui e logo posto a resposta.
Muito obrigado, abraços.
ERVER
Dezembro 18, 2012, 8:54pm
#7
Atualizado o adobe reader funcionou.
Muito obrigado pela ajuda.
Abraços.
Precisando, tamo aee… abraço…
Opa, tava precisando disso mesmo rs.