Gerando boleto

Mario Amaral edited this page Jul 15, 2014 · 5 revisions

Gerando Boletos

Veja um exemplo de geração de boleto para o Banco do Brasil

public class Teste {  
    public static void main(String[] args) {  
        Datas datas = Datas.novasDatas()
                .comDocumento(1, 5, 2008)
                .comProcessamento(1, 5, 2008)
                .comVencimento(2, 5, 2008);  

        Endereco enderecoBeneficiario = Endereco.novoEndereco()
        		.comLogradouro("Av das Empresas, 555")  
        		.comBairro("Bairro Grande")  
        		.comCep("01234-555")  
        		.comCidade("São Paulo")  
        		.comUf("SP");  

        //Quem emite o boleto
        Beneficiario beneficiario = Beneficiario.novoBeneficiario()  
                .comNomeBeneficiario("Fulano de Tal")  
                .comAgencia("1824").comDigitoAgencia("4")  
                .comCodigoBeneficiario("76000")  
                .comDigitoCodigoBeneficiario("5")  
                .comNumeroConvenio("1207113")  
                .comCarteira("18")  
                .comEndereco(enderecoBeneficiario)
                .comNossoNumero("9000206");  

        Endereco enderecoPagador = Endereco.novoEndereco()
        		.comLogradouro("Av dos testes, 111 apto 333")  
        		.comBairro("Bairro Teste")  
        		.comCep("01234-111")  
        		.comCidade("São Paulo")  
        		.comUf("SP");  
        
        //Quem paga o boleto
        Pagador pagador = Pagador.novoPagador()  
                .comNome("Fulano da Silva")  
                .comDocumento("111.222.333-12")
                .comEndereco(enderecoPagador);

        Banco banco = new BancoDoBrasil();  

        Boleto boleto = Boleto.novoBoleto()  
                .comBanco(banco)  
                .comDatas(datas)  
                .comBeneficiario(beneficiario)  
                .comPagador(pagador)  
                .comValorBoleto("200.00")  
                .comNumeroDoDocumento("1234")  
                .comInstrucoes("instrucao 1", "instrucao 2", "instrucao 3", "instrucao 4", "instrucao 5")  
                .comLocaisDePagamento("local 1", "local 2");  

        GeradorDeBoleto gerador = new GeradorDeBoleto(boleto);  

        // Para gerar um boleto em PDF  
        gerador.geraPDF("BancoDoBrasil.pdf");  

        // Para gerar um boleto em PNG  
        gerador.geraPNG("BancoDoBrasil.png");  

        // Para gerar um array de bytes a partir de um PDF  
        byte[] bPDF = gerador.geraPDF();  

        // Para gerar um array de bytes a partir de um PNG  
        byte[] bPNG = gerador.geraPNG();
    }  
}  

##Gerando um Documento PDF com varios Boletos

Boleto[] boletos = {boletoDeJaneiro,boletoDeFevereiro,boletoDeMarco};  
GeradorDeBoleto gerador = new GeradorDeBoleto(boleto);
gerador.geraPDF("boletos.pdf"); 

De forma análoga, podemos também utilizar o recurso de varargs.

new GeradorDeBoleto(boletoDeJaneiro,boletoDeFevereiro,boletoDeMarco).geraPDF("boletos.pdf");

##Gerando Boleto em HTML

Em sistemas web você pode exibir o boleto diretamente em uma página, seguindo o seguinte passo a passo:

  • Caso esteja rodando seu sistema em Servlet 2.5 ou inferior, é necessário registrar a Servlet do Jasper Reports no seu web.xml. Se estiver rodando em servlet 3.0 ou superior, esse passo é desnecessário, já que a servlet será registrada automaticamente:
<!-- configuração para servlet 2.5 -->
<servlet>
    <servlet-name>JasperReportsImageServlet</servlet-name>
    <servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>JasperReportsImageServlet</servlet-name>
    <url-pattern>/stella-boleto</url-pattern>
</servlet-mapping>
  • Para gerar o html dos boletos, use a classe GeradorDeBoletoHTML:
GeradorDeBoletoHTML gerador = new GeradorDeBoletoHTML(boleto);
  • Agora é só escolher a forma de enviar o conteúdo do boleto para o usuário. Caso deseje enviar o pdf para exibição na página ou download, é só usar o método geraPDF, que recebe como parâmetro um OutputStream:
GeradorDeBoletoHTML gerador = new GeradorDeBoletoHTML(boleto);
gerador.geraPDF(response.getOutputStream());

Já para exibir o conteúdo do boleto diretamente em html, use o método geraHtml, que recebe como parametros um Writer, e o request:

GeradorDeBoletoHTML gerador = new GeradorDeBoletoHTML(boleto);
gerador.geraHTML(response.getWriter(), request);

há outras variações desses métodos, para gravar os boletos gerados em arquivos ou arrays de bytes. Em caso de dúvidas de como usar qualquer um desses métodos consulte a documentação ou mande uma dúvida na nossa Lista de Discussão

Termos Relevantes

  • Aceite: diz se o banco deve aceitar o boleto após a data de vencimento. Padrão: 'N'
  • Espécie de Documento: identificador do tipo de boleto. Padrão: "DV"
  • Número do Documento: código informado pelo banco para identificação do cliente
  • Carteira: código informado pelo banco pra identificação do tipo do boleto
  • Número do Convênio: código que identifica um emissor junto ao seu banco para associar seus boletos. Fornecido pelo banco
  • Nosso Número: código que o cedente escolhe para manter controle sobre seus boletos. Esse valor serve para o cedente identificar quais boletos foram pagos ou não. Recomenda-se o uso de números sequênciais, na geração de diversos boletos, para facilitar a identificação dos boletos pagos
  • Beneficiário: pessoa/empresa que gera o boleto
  • Pagador: pessoa/empresa que deve pagar o boleto
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.