Relatorio em pdf por email com struts2

3 respostas
R

Ola pessoal, estou desenvolvendo um projeto, e me deparei com a necessidade de gerar relatorios com struts 2 , até ae td bem , mas queria enviar o relatorio gerado por email .

segue meu codigo da minha action q gera o pdf usando anotations do Struts 2:

@Action(value=montaPdfFrota, results={ @Result(name=ok,type=jasper,
location=/pdf/frota.jasper,
params={dataSource,frotabanco,format,PDF}),
@Result(name=ok, type=redirectAction, 
params={actionName, ActionEnviaEmail}),
@Result(name=input, location=/erro.jsp)

})

A outra action que envia o email
@Action(value=ActionEnviaEmail, results={ @Result(name=ok, location=/sucesso.jsp), @Result(name=input, location=/cadastro-frota.jsp) })

public String execute() {

// cria o anexo 1.

try {
EmailAttachment anexo1 = new EmailAttachment();
anexo1.setPath(C:/workspace/PortalBonanza/WebContent/pdf/frota.jasper); //caminho do arquivo (RAIZ_PROJETO/teste/teste.txt)
anexo1.setDisposition(EmailAttachment.ATTACHMENT);
anexo1.setDescription(Exemplo de arquivo anexo);

anexo1.setName(frota.jasper);

// configura o email
MultiPartEmail email = new MultiPartEmail();
email.setHostName(smtp.gmail.com); // o servidor SMTP para envio do e-mail
email.addTo([email removido], Guilherme); //destinatário
email.setFrom([email removido], Eu); // remetente
email.setSubject(Teste -> Email com anexos); // assunto do e-mail
email.setMsg(Teste de Email utilizando commons-email); //conteudo do e-mail
email.setAuthentication(rogeriowebteste, xxxxxxx);
email.setSmtpPort(465);
email.setSSL(true);
email.setTLS(true);

// adiciona arquivo(s) anexo(s)
email.attach(anexo1);

// envia o email
email.send();

return ok;
[code]

é enviado o email do arquivo jasper, e nao do pdf como faço pra mandar o arquivo PDF gerado por email alguem tem uma luz?

3 Respostas

drsmachado

Veja isto

anexo1.setPath(C:/workspace/PortalBonanza/WebContent/pdf/frota.jasper);

Significa que você está anexando o .jasper.
Você precisa indicar o path para o .pdf

R

Não é tao simples assim, esse arquivo.jasper e transformado e renderizado em PDF. mas nao e salvo o pdf. portando preciso achar uma maneira de pegar o pdf nao sei como.

drsmachado

A questão é que da forma que está fazendo, ele irá enviar o .jasper.
Portanto, pesquise como converter para pdf, talvez iText ajude…

Criado 16 de abril de 2012
Ultima resposta 17 de abr. de 2012
Respostas 3
Participantes 2