Como nomear um relatório gerado pelo Jasper

2 respostas
decker

Pessoal

Tenho uma página jsp, onde há um botão que quando clicado, gera um relatório em pdf. Mas para isso, eu coloquei um local e um nome padrão, sem o usuário poder escolher nome.
Gostaria de saber se é possível, ao clicar no botão, abrir uma janela, onde o usuário pode escolher onde salvar o relatório e com que nome…

Valeu!

2 Respostas

dick_Vigarista

1- Primeiro , vc deve identificar o método usado para gerar o JasperPrint,
que no caso é :JasperFillManager.fillReport(template, parametros, collection).

-------->

JasperPrint impressao = JasperFillManager.fillReport(

getCaminhoTemplate(), obterMapaParametros(),

fonteDados);

--------->

2- Depois vc tranforma esse conteudo em um array de bytes "byte[]"

---------->

conteudo = JasperExportManager.exportReportToPdf(impressao);

---------->

3 - ai , vc grava o arquivo .pdf usando FileOutputStream, e especificando o caminho e o nome do arquivo que vc quer:

----------->

imprimirArquivo("C:\relatorios\tabajara\" + gerarNomeArquivo() + "_02.pdf", conteudo);

public void imprimirArquivo(arquivo, conteudo){

OutputStream out = new FileOutputStream(arquivo);

out.write(conteudo);

out.close();

System.out.println("Arquivo escrito em disco com sucesso.\n");

}

--------------->

4 - Agora é so arrumar uma maneira de transmitir o nome e caminho do arquivo da jsp até os métodos acima(Sunstituir a variável arquivo).

decker

Oie!

Consegui fazer… =]

Para pegar o nome, usei algo do tipo:

response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "filename=relatorio.pdf");
response.setContentLength(bytes.length);

Valeu!

Criado 24 de julho de 2006
Ultima resposta 27 de jul. de 2006
Respostas 2
Participantes 2