Skip to content
Mario Amaral edited this page Jul 3, 2013 · 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);  

	Emissor emissor = Emissor.novoEmissor()  
            .comCedente("Fulano de Tal")  
            .comAgencia(1824).comDigitoAgencia('4')  
            .comContaCorrente(76000)  
            .comNumeroConvenio(1207113)  
            .comDigitoContaCorrente('5')  
            .comCarteira(18)  
            .comNossoNumero(9000206);  

        Sacado sacado = Sacado.novoSacado()  
	    .comNome("Fulano da Silva")  
            .comCpf("111.222.333-12")  
            .comEndereco("Av dos testes, 111 apto 333")  
            .comBairro("Bairro Teste")  
            .comCep("01234-111")  
            .comCidade("São Paulo")  
            .comUf("SP");  

        Banco banco = new BancoDoBrasil();  

	Boleto boleto = Boleto.novoBoleto()  
            .comBanco(banco)  
            .comDatas(datas)  
            .comDescricoes("descricao 1", "descricao 2", "descricao 3", "descricao 4", "descricao 5")  
            .comEmissor(emissor)  
            .comSacado(sacado)  
            .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};  
BoletoGenerator gerador = new BoletoGenerator(boletos);  
gerador.toPDF("boletos.pdf");  

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

new BoletoGenerator(boletoDeJaneiro,boletoDeFevereiro,boletoDeMarco).toPDF("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:

  • Registre a Servlet do stella-boleto no seu web.xml:
<servlet>
  <servlet-name>boleto</servlet-name>
  <servlet-class>br.com.caelum.stella.boleto.transformer.HTMLBoletoServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>boleto</servlet-name>
  <url-pattern>/stella-boleto</url-pattern>
</servlet-mapping>
  • Para gerar o html dos boletos, use a classe BoletoTransformer, em conjunto com a classe HTMLBoletoWriter. É preciso informar o endereço onde a Servlet do stella-boleto foi registrada:
BoletoTransformer transformer = new BoletoTransformer(new HTMLBoletoWriter("stella-boleto")); // url da servlet
InputStream is = transformer.transform(boleto);
  • Agora é necessário utilizar o conteúdo do InputStream para escrever no corpo do html. se estiver utilizando o Vraptor o código pode ser o seguinte:
@Path("/boletoHTML")
public void boletoHTML(Integer numeroBoleto){
  Boleto boleto = //busca boleto...

  BoletoTransformer transformer = new BoletoTransformer(new HTMLBoletoWriter("stella-boleto")); 
  InputStream is = transformer.transform(boleto);

  result.use(Results.http()).addHeader("Content-Type","text/html").body(inputStream).setStatusCode(200);
}

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
  • Cedente: nome do emissor
  • Emissor: pessoa/empresa que gera o boleto
  • Sacado: pessoa/empresa que deve pagar o boleto