Jasper para PDF não aparece [RESOLVIDO]

5 respostas
aurelio_silva

Seguinte, estou usando JSF e no meu manager bean tem um botão para imprimir. Nele esta o código abaixo.

List<JasperPrint> guias = guiaSADT.construir();

// Funciona, o relatório aparece
//JasperViewer.viewReport(guias.get(0));
			
byte[] b = JasperExportManager.exportReportToPdf(guias.get(0));
				
HttpServletResponse res = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
res.setContentType("application/pdf");
res.setHeader("Content-disposition", "attachment;filename=Guia.pdf");
res.getOutputStream().write(b);
res.getOutputStream().flush();
res.getOutputStream().close();
res.getCharacterEncoding();
FacesContext.getCurrentInstance().responseComplete();

Só que no browser não está aparecento a caixa de dialogo para selecionar onde salvar o .pdf e sim algo do tipo:

Alguem tem alguma idéia?

Obrigado.

5 Respostas

ataufo

Tenta res.getOutputStream().write(b, 0, b.length) no lugar de res.getOutputStream().write(b);

aurelio_silva

Infelizmente não funcionou tb. O duro é ver o browser receber o pdf em byte mais sei lá porque ele não identifica o que é, acho que o jsf está enviando como se fosse uma página html.
Valeu

ataufo

Por acaso vc tem o adobe reader instalado? rsrs

furutani

Vc ta usando as tags de ajax?
Se sim, experimenta trocar por um que não seja.

aurelio_silva

furutani:
Vc ta usando as tags de ajax?
Se sim, experimenta trocar por um que não seja.

Nossa cara, era isso mesmo. O botão era um a4j:commandButton, criei um h:commandButton e funcionou!

Nossa, perdi um dia fazendo tentativas…tinha até desistido…rsrsrs

Só não entendi bem, por que será que com ajax não funciona?

valeu hem

Valeu cara, bem lembrado mais já tinha pensado nessa possibilidade…rsrs

Valeu

Criado 2 de fevereiro de 2010
Ultima resposta 3 de fev. de 2010
Respostas 5
Participantes 3