Criando seus próprios Boletos Bancários com JBoleto

JBoletoVeja como é fácil criar os seus próprios boletos de cobrança, sem complicações.

Este artigo é voltado para programadores Java que pretendem incluir o recurso de gerar boletos bancários dentro do seu sistema proprietário. Este artigo irá introduzir o desenvolvedor a criar um pequeno código que o ajudará a criar boletos de cobrança. Boa parte dos programadores passam pelo menos uma vez em sua carreira com a terrível tarefa de fazer o seu sistema gerar boletos bancários.

A inclusão de um sistema de emissão, envio e impressão de boleto de cobrança em um sistema interno de uma empresa é fundamental e requer um trabalhoso levantamento de dados para para gerar alguns campos (código de barras e a linha digitável por ex.), ainda mais se o sistema tiver que ter a opção de gerar boletos de cobrança para mais de um banco, pois cada banco tem uma forma de trabalhar diferente com esses números.

Introdução
O sistema de boleto bancário é indispensável para qualquer atividade comercial. O pagamento via boleto é muito prático e seguro para o consumidor e pouco oneroso para o empresário, se comparado ao cartão de crédito que tem uma taxa de juros muito maior, pois no boleto bancário é cobrado uma taxa fixa para cada boleto, esta taxa é negociada com o gerente do seu banco, a média desta taxa é mais ou menos de R$ 2,50, enquanto o cartão de crédito é uma porcentagem em cima do valor cobrado.

Para este artigo usaremos um componente OpenSouce feito em Java para geração de boletos bancários.
O JBoleto é um excelente componente de fácil instalação e utilização, bastando incluir no CLASSPATH do projeto que em poucos minutos, você estará gerando os seus boletos de cobrança.

Além disso o programador poderá contar com o suporte oferecido pelo próprio site do JBoleto (www.jboleto.org), onde você poderá encontrar manuais e enviar e-mails diretamente para o criador do projeto (eu mesmo).
O artigo foi desenvolvido utilizando as seguintes recursos:
Java SE 6
Componente JBoleto
iText

Obtendo a biblioteca JBoleto
A biblioteca Jboleto é a responsável por realizar todas lógicas para se gerar um boleto de cobrança.
Para obter o pacote da biblioteca JBoleto basta baixar o pacote no seguinte link http://jboleto.org/arquivos/jboleto.jar. Salve o arquivo dentro da pasta CLASSPATH do Java.

Obtendo a biblioteca iText
A biblioteca iText é a responsável por gerar os boletos de cobrança no formato PDF da Adobe.
Para obter o pacote da biblioteca iText basta acessar o site http://www.lowagie.com/iText/download.html e baixar o arquivo itext-2.0.4.jar e salva-lo na mesma pasta onde foi salvo o Jboleto.

Código da aplicação:


package boleto;

import org.jboleto.JBoleto;
import org.jboleto.JBoletoBean;
import org.jboleto.control.Generator;
import org.jboleto.control.PDFGenerator;
import org.junit.Assert;
import org.junit.Test;

public class GeraBoletoItau {

    public static void main (String args[]) {

        try {

            JBoletoBean jBoletoBean = new JBoletoBean();

            jBoletoBean.setDataDocumento("05/07/2009");
            jBoletoBean.setDataProcessamento("05/07/2009");

            jBoletoBean.setCedente("Notícias Geek");

            jBoletoBean.setNomeSacado("Fabio Souza");
            jBoletoBean.setEnderecoSacado("Rua Geek 010101");
            jBoletoBean.setBairroSacado("Freguesia");
            jBoletoBean.setCidadeSacado("Rio de Janeiro");
            jBoletoBean.setUfSacado("RJ");
            jBoletoBean.setCepSacado("22750-000");
            jBoletoBean.setCpfSacado("00000000000");

            jBoletoBean.setImagemMarketing("original_template_logo.gif");

            jBoletoBean.setDataVencimento("10/08/2009");
            jBoletoBean.setInstrucao1("APOS O VENCIMENTO COBRAR MULTA DE 2%");
            jBoletoBean.setInstrucao2("APOS O VENCIMENTO COBRAR R$ 0,50 POR DIA DE ATRASO");
            jBoletoBean.setInstrucao3("");
            jBoletoBean.setInstrucao4("");

            jBoletoBean.setCarteira("175");
            jBoletoBean.setAgencia("2971");
            jBoletoBean.setContaCorrente("08690");
            jBoletoBean.setDvContaCorrente("1");

            jBoletoBean.setNossoNumero("34556",8);
            jBoletoBean.setNoDocumento("34556");
            jBoletoBean.setValorBoleto("300.00");

            Generator generator = new PDFGenerator(jBoletoBean, JBoleto.ITAU);
            JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.ITAU);

            jBoleto.addBoleto();
            jBoleto.closeBoleto("itau.pdf");
        }
        catch (Exception ex) {

            ex.printStackTrace();
        }
    }
}

Considerações Finais
Após o término deste artigo, o programa deve ser capaz de gerar um boleto de cobrança do banco Itaú no formato PDF.
Claro que o nosso pequeno programa, não é para fazer um controle total de boletos, e sim para dar uma idéia do que se pode fazer com o componente.

Até a próxima matéria.

Tags: , , , , ,

6 Comentários

  1. Olá Fábio!
    Parabéns pelo artigo!

    Estou com o seguinte problema. Se puder me ajudar…
    Obtive esse erro ao executar sua classe.

    com.lowagie.text.exceptions.IllegalPdfSyntaxException: Unbalanced begin/end text operators.
    at com.lowagie.text.pdf.PdfContentByte.beginText(Unknown Source)
    at org.jboleto.control.PDFGenerator.addBoleto(PDFGenerator.java:169)
    at org.jboleto.JBoleto.addBoleto(JBoleto.java:110)
    at GeraBoletoItau.main(GeraBoletoItau.java:47)
    com.lowagie.text.exceptions.IllegalPdfSyntaxException: Unbalanced begin/end text operators.
    at com.lowagie.text.pdf.PdfContentByte.sanityCheck(Unknown Source)
    at com.lowagie.text.pdf.PdfContentByte.reset(Unknown Source)
    at com.lowagie.text.pdf.PdfContentByte.reset(Unknown Source)
    at com.lowagie.text.pdf.PdfWriter.resetContent(Unknown Source)
    at com.lowagie.text.pdf.PdfDocument.initPage(Unknown Source)
    at com.lowagie.text.pdf.PdfDocument.newPage(Unknown Source)
    at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)
    at com.lowagie.text.Document.close(Unknown Source)
    at org.jboleto.control.PDFGenerator.closeBoleto(PDFGenerator.java:323)
    at org.jboleto.JBoleto.closeBoleto(JBoleto.java:120)
    at GeraBoletoItau.main(GeraBoletoItau.java:48)

  2. Olá Fábio!
    Descobri o que era… Era a versão do iText…
    Mesmo assim obrigado! :-)

  3. Opa, desculpe a demora, que bom que descobriu rápido também :)
    Em breve estarei incluindo uma série de tutoriais legais usando boletos e arquivos de remessa.

  4. Olá Fábio,

    Muito interessante seu projeto, eu baixei os pacotes e fiz a instalação como em seu tutorial no jboleto.org., só que tem um probleminha que ainda não resolvi.

    A pagina de geração do boleto faz request para gerar o boleto, porém o boleto nao é gerado. Será que é apenas um problema de permissão?

    Dá um toque aí …

    Abraço

  5. Olá pessoal, estou mando este para dizer que o link para a realização do download do arquivo Jboleto.jar esta quebrado,(http://jboleto.org/arquivos/jboleto.jar) estou precisando urgentemente desse arquivo para fazer a impressão de boletos da empresa onde trabalho, se for possível vcs me enviar via e-mail esse arquivo ficaria grato.
    Desde já agradeço.

    fabricio

  6. awmaximus achei legal que resolveu seu problema !! mas posta ai qual a biblioteca que uso!! estou com o mesmo problema!!
    valeu

Deixe um comentário