Criando seus próprios Boletos Bancários com JBoleto
Veja 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.



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)
Olá Fábio!
Descobri o que era… Era a versão do iText…
Mesmo assim obrigado!
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.
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
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
awmaximus achei legal que resolveu seu problema !! mas posta ai qual a biblioteca que uso!! estou com o mesmo problema!!
valeu