publicstaticvoidgeraPdf(JasperPrintjasperPrintSecao){try{//GERA PDF// @ outputStreamByteArrayOutputStreampdfStream=newByteArrayOutputStream();JasperExportManager.exportReportToPdfStream(jasperPrintSecao,pdfStream);HttpServletResponseresponse=(HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();response.setContentType("application/octet-stream");response.setHeader("Content-Disposition","attachment; filename=relatorio.pdf");response.setContentLength(pdfStream.size());//para o pdfStream// Flush pdfStream pra responseServletOutputStreamflusher;flusher=response.getOutputStream();pdfStream.writeTo(flusher);flusher.flush();flusher.close();FacesContext.getCurrentInstance().responseComplete();pdfStream.close();pdfStream=null;}catch(Exceptione){e.printStackTrace();}}
Não sei se te ajuda, aqui consegui arruma esse erro.
flw
D
davidpadilha
Mas como que ficou seu link na pagina pra chamar a impressão de relatório?
h4lls
No meu caso eu tive alguns problemas na atualização da pagina, pq eu tinha muitos campos com submit. Dai eu criei um popup e nele eu tinha outro commandButton que chamava o japer dai não ocorria problemas com a pagina dos forms.
D
davidpadilha
vc pode colar o código do botão ( e o da popup, se puder ), por favor?
h4lls
Cara eu uso o ADF da oracle a forma de chamar o popup pode ser diferente da sua implementação mas o codigo é esse:
dentro do actionImprimir vc monta seu JasperPrint e envia ele para aqule metodo que te enviei.
D
davidpadilha
Vc pode me mostrar seu método que monta o JasperPrint?
[]'s
D
davidpadilha
Boa tarde…
Se eu adicionar a linha no do meu método:
context.responseComplete();
Ele funciona numa boa, porém quando ele redireciona para a página, o relatório está com uma porrada de caracteres aleatórios e parece que ele não foi ‘transformado’ no que era pra ser.
cara no meu caso eu peguei muita coisa aqui do GUJ e nos forun da sun.
da uma googleada sobre response.setContentType
que deve aparecer diversas formas.
uma delas deve te servir .
D
davidpadilha
Vc usa Facelets no seu caso?
[]'s
h4lls
facelets tb.
D
davidpadilha
Po, valeu pela ajuda…pesquisando, descobri que o problema esta no richFaces :S
Agora vai ser dose pra arrumar isso hehe
Valeuu
[]'s
h4lls
blz cara.
M
mlfranz
Olá davidpadilha!
Gostaria de saber como vc fez para resolver o problema do jasper com o richfaces?!?!
Estou passando pelo mesmo problema e ainda não consegui solução …
Sds
M
mlfranz
Bem, mesmo não conseguindo respostas aqui …
Consegui resolver e vou deixar aqui como fiz para consulta …
Um detalhe importante e o motivo do erro é o fato de usar o Richfaces no projeto …
Para tanto em minhas paginas xhtml utilizo normalmente um a4j:form e a4j:commandButton com ajax ativado obviamente …
Ai que tá o problema com relação a geração do pdf … vc deve utilizar um h:form e um h:commandButton … e chamar o relatório pelo actionListener …
Espero que ajude alguem que passe por este problema … valew …
Kleber-rr
Olá mlfranz, bom dia.
Você deixou de utilizar o richfaces na tua aplicação?? Estou com um problema apenas quando eu coloco minha aplicação no servidor. No meu pc, rodando pelo eclipse, gera tudo normalzinho.
Estou usando o JSF 1.2, richfaces 3.3.3, iText 2.1.7, tomcat 6.
Agradeço ajuda.
mlfranz:
Bem, mesmo não conseguindo respostas aqui …
Consegui resolver e vou deixar aqui como fiz para consulta …
Um detalhe importante e o motivo do erro é o fato de usar o Richfaces no projeto …
Para tanto em minhas paginas xhtml utilizo normalmente um a4j:form e a4j:commandButton com ajax ativado obviamente …
Ai que tá o problema com relação a geração do pdf … vc deve utilizar um h:form e um h:commandButton … e chamar o relatório pelo actionListener …
Espero que ajude alguem que passe por este problema … valew …