Fórum iReport #427864

01/11/2012

0

Bom galera to uma dúvida, estou desenvolvendo um projeto web utilizando servlets, juntamente com iReport para fazer os meus relatórios. A dúvida é essa minha classe compila o arquivo e gera um pdf, porém eu não estou conseguindo fazer com que esse arquivo pdf gerado apareça para o usuário fazer o download do mesmo, na minha servlet estou apenas imprimindo com a classe PrintWriter. O retorno dessa minha classe é realmente JasperPrint?

public class FuncionarioRelatorio  {


	public JasperPrint relatorio(String mapa, String filtro){
		
		try {
			// Conexao
			Connection conn = ConnectionManager.startConnection();

			// compilacao do JRXML
			JasperReport report = JasperCompileManager.compileReport("/relatorios/funcionarios.jrxml");

			HashMap<String, Object> hashMap = new HashMap<String, Object>();
			hashMap.put(mapa, filtro);

			JasperPrint print = JasperFillManager.fillReport(report, hashMap, conn);
			
			JasperExportManager.exportReportToPdf(print);
			
			return print;
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println(e);
		}
		return null;
	}
}
Jean Lenon

Jean Lenon

Responder

Posts

07/11/2012

Robson Teixeira

Olá Jean,
tente obter o seu relatorio em byte e no seu servlet pegue o objeto responde e obtenha a stream atravez do response e passe os bytes do relatorio para o método write conforme o exemplo abaixo

resp.setContentType(PASSE O TYPE PARA O TIPO PDF);
resp.setHeader("Content-disposition", "attachment;filename=NOME DO ARQUIVO.pdf\"");
resp.getOutputStream().write(relatorio);

e o seu relatorio vai ser exibido pelo navagador para download
att
robson


Responder

Gostei + 0

07/11/2012

Jean Lenon

Valeu Robson, consegui resolver desse jeito.
Obrigado
Responder

Gostei + 0

08/11/2012

Alisson Santos

Estou concluindo o tópico qualquer problema só informar
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar