Versão atual:

Abrir PDF sem salva-lo com JSF

Olá pessoal. Preciso gerar um boleto em PDF e automaticamente abrir no navegador sem salva-lo no disco.

Estou usando JSF. Não da nenhum erro, porém o arquivo não abre. Alguem poderia me ajudar.

Meu codigo está abaixo.

Obrigado.

XHTML

<p:commandButton icon="ui-icon-search" style="height: 15px" title="Visualizar" action="#{boletoMB.abrirRelatorio()}" >
   <f:setPropertyActionListener value="#{boletoList}" target="#{boletoMB.boletoPreenchido}" />
</p:commandButton>

MB

 public String abrirRelatorio() {

        BoletoViewer bv = new GerarBoleto().criarBoleto(boletoPreenchido);

        byte[] pdfAsBytes = bv.getPdfAsByteArray();

        HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();

        try {
            response.setContentType("application/pdf");
            response.setHeader("Content-disposition", "inline; filename=boleto.pdf");

            OutputStream output = response.getOutputStream();
            output.write(pdfAsBytes);
            response.flushBuffer();
            output.flush();  
            output.close();  

            FacesContext.getCurrentInstance().responseComplete();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;


    }

Versões(2):

Ver a versão formatada

Abrir PDF sem salva-lo com JSF

Comentário

new question