Qual biblioteca usar para gerar boleto

Galera, preciso gerar alguns boletos no meu sistema, vasculhei a net e encontrei 2 bibliotecas que fazem isso (JBoleto e Bopepo), das duas eu achei o JBoleto mas simples para configurar o boleto, mas encontrei em algumas páginas que na hora de pagar o boleto no banco ele não estava sendo aceito, alguns disseram que ele foi descontinuado, isso é verdade?Na opinião de vocês, qual dos dois eu devo usar?

vc pode usar a JBoleto ou o próprio iReport…

t+ e boa sorte.

sobre o banco aceitar ou não, vc precisa gerar os boletos no layout do banco q quer usar, após gerar é só levar a uma agencia para ver com o gerente ou responsavel se está tudo legal.

t+ e boa sorte.

iReport?!Essa eu não sabia, você tem algum material sobre isso?

Cara olha aí logo abaixo o que já escrevi em outra thread. Vc desenvolver um boleto usando jasper reports?

Bom, só faz isso se nenhuma biblioteca te atender.

Use o Bopepo porque ele é simples sim, ele te permite a geração de um boleto padrão de forma muito simples:

http://www.jrimum.org/bopepo/wiki/Componente/Documentacao/Tutoriais/GeracaoDeBoletoPadrao

E o bom é que vc tem uma lista de discussão para tirar dúvidas só sobre boleto, se precisar:

http://groups.google.com.br/group/jrimum-community

[quote=gilmatryx]Derivado de http://www.guj.com.br/prepost/233335/1201016/jboleto-deprecated-

Diante do projeto, das tecnologias envolvidas e de todo o suporte,…
Todos que migraram do JBoleto são unânimes em afirmar que o Bopepo, que está em constante evolução, do projeto JRimum

É a melhor opção, veja alguns comentários:

[quote][i]"(…)muito obrigado pelas dicas, talvez eu ainda vá precisar de mais alguma outra daqui para frente, mas posso dizer que estou impressionado com o suporte e feliz por ter encontrado o Jrimum.

Obs: tem suporte pago por aí que não tem metade da eficiência desta lista. Valeu!(…)"

Marcio Sfalsin - Objetiva Sistemas - Diretor de Tecnologia
https://groups.google.com/d/topic/jrimum-community/q1-K80Y1LW8/discussion
[/i][/quote]

[quote][i]"(…)Em primeiro lugar, parabéns pelo Bopepo e pelo projeto JRimum como um
todo. Já utilizei o JBoleto e pelo que vi até agora é outro mundo,
muito menos engessado e já bem arquitetado logo de início.(…)"

Renato Atilio
https://groups.google.com/d/topic/jrimum-community/xpbPEdOWHko/discussion
[/i][/quote]

[quote][i]"(…)Aguardo resposta e parabéns pelo Bopepo. Estava usando o JBoleto e não
há uma forma fácil de gerar guias de arrecadação com o mesmo.(…)"

Erisvaldo
https://groups.google.com/d/topic/jrimum-community/3LdS69-SNjY/discussion
[/i][/quote]

[quote][i]"(…)Atualmente no projeto em que trabalho vinha sendo utilizado o JBoleto, mas o Bopepo me pareceu bem mais completo e de fácil personalização.(…)"

Geovanny Ribeiro
https://groups.google.com/d/topic/jrimum-community/QH0DpMIt7pg/discussion
[/i][/quote]

[quote][i]"(…)Vou estudar a biblioteca Bopepo para poder ajudar também.
Valeu e parabéns pelo projeto.(…)"

Aroaldo
https://groups.google.com/d/topic/jrimum-community/pmOsOyoP49w/discussion
[/i][/quote]

[quote][i]"(…)Gostaria de agradecer pelo empenho e pela atenção. Parabéns novamente
pelo ótimo projeto.(…)"

Chailon
https://groups.google.com/d/topic/jrimum-community/rQiuOUUvj3E/discussion
[/i][/quote]

Além de gerar um boleto padrão sem esforço algum…

Se vc quiser personalizar o boleto, ele permite personalização através de templates PDFs.
Você pode usar o OpenOffice para desenhar o boleto e depois exportar para pdf. É simples.

Veja este vídeo de personalização de boletos com Bopepo:

[youtube]http://www.youtube.com/watch?v=0kRa2wprDdQ[/youtube]

Este vídeo mostra como gerar boletos personalizados através do componente Bopepo do Projeto JRimum. O vídeo foca num dos recursos mais interessantes, que é como adicionar campos dinâmicos, ou seja, campos que podem ter seus valores fornecidos em tempo de execução.
Ver tutoriais.

http://www.jrimum.org/bopepo/wiki/Componente/Documentacao/Tutoriais

Na versão mais atual já são suportados 20 bancos, é o mais completo atualmente, estamos só aguardando mais feedback do pessoal para lançar a versão final.

http://www.jrimum.org/bopepo/ticket/47

  • Banco do Brasil
  • Bradesco
  • #13 - Banco Real
  • #14 - Itaú
  • #15 - Unibanco
  • #17 - Safra
  • #18 - Mercantil
  • #19 - HSBC
  • #21 - Banrisul
  • #22 - Nossa Caixa S.A.
  • #24 - Banestes
  • #25 - BANCO SANTANDER S.A.
  • #38 - Banco J. Safra
  • #39 - Banco SICREDI
  • #40 - CEF
  • #48 - Banco Rural
  • #56 - Banco Intermedium
  • #57 - Banco do Nordeste do Brasil (BNB)

Veja lista atualizada em:

http://www.jrimum.org/bopepo/wiki/Componente/BancosSuportados

Se precisar de ajuda e tiver dúvidas, chega lá no grupo que o pessoal te ajuda.

Mais informações sobre o andamento do Projeto Bopepo … vc pode ver no Timeline.[/quote]

Estou usando o bopepo e estou passando pelo seguinte problema:

[code] ContaBancaria contaBancaria = new ContaBancaria(BancosSuportados.BANCO_BRADESCO.create()); //o “BancosSuportados” não esta reconhecendo,fica grifado de vermelho
contaBancaria.setNumeroDaConta(new NumeroDaConta(123456, “0”));
contaBancaria.setCarteira(new Carteira(30));
contaBancaria.setAgencia(new Agencia(1234, “1”));//Agencia também

            Titulo titulo = new Titulo(contaBancaria, sacado, cedente, sacadorAvalista);
            titulo.setNumeroDoDocumento("123456");
            titulo.setNossoNumero("99345678912");
            titulo.setDigitoDoNossoNumero("5");
            titulo.setValor(BigDecimal.valueOf(0.23));
            titulo.setDataDoDocumento(new Date());
            titulo.setDataDoVencimento(new Date());
            titulo.setTipoDeDocumento(TipoDeTitulo.DM_DUPLICATA_MERCANTIL);
            titulo.setAceite(EnumAceite.A);
            titulo.setDesconto(new BigDecimal(0.05));
            titulo.setDeducao(BigDecimal.ZERO);//Deducao também
            titulo.setMora(BigDecimal.ZERO);//Mora também
            titulo.setAcrecimo(BigDecimal.ZERO);//Acrecimo também
            titulo.setValorCobrado(BigDecimal.ZERO);//ValorCobrado também[/code]

Acho que você esqueceu de citar o problema. Diz aí, o que tá havendo?

Ele não esta reconhecendo esses campos que eu comentei

Luciano, qual é a versão que vc está usando?

Deve ser só a versão que não é igual a do exemplo que vc pegou.

Estou usando o Bopepo 0.3

É Luciano,

Então, o recomendado é vc utilizar o ultimo snapshot da 0.2.x

http://code.google.com/p/jrimum/downloads/detail?name=JRimum-Bopepo-SNAPSHOT-20110415-bin.jar

Ou baixar diretamente do maven como o indicado na página de downloads:

http://www.jrimum.org/jrimum/wiki/Projeto/Download

A versão 0.2.x é a que acumula todas as melhorias e ajustes até o presente momento.

Agora a versão mais atual de todas, se vc não usa maven, vc encontra em:

http://jrimum.org/maven/index.html#nexus-search;quick~bopepo

O jar para baixar.

A classe é BancoSuportado e não BancosSuportados.

[code] ContaBancaria contaBancaria = new ContaBancaria(BancosSuportados.BANCO_BRADESCO.create()); //o “BancosSuportados” não esta reconhecendo,fica grifado de vermelho
contaBancaria.setNumeroDaConta(new NumeroDaConta(123456, “0”));
contaBancaria.setCarteira(new Carteira(30));
contaBancaria.setAgencia(new Agencia(1234, “1”));//Agencia também

            Titulo titulo = new Titulo(contaBancaria, sacado, cedente, sacadorAvalista);
            titulo.setNumeroDoDocumento("123456");
            titulo.setNossoNumero("99345678912");
            titulo.setDigitoDoNossoNumero("5");
            titulo.setValor(BigDecimal.valueOf(0.23));
            titulo.setDataDoDocumento(new Date());
            titulo.setDataDoVencimento(new Date());
            titulo.setTipoDeDocumento(TipoDeTitulo.DM_DUPLICATA_MERCANTIL);
            titulo.setAceite(EnumAceite.A);
            titulo.setDesconto(new BigDecimal(0.05));
            titulo.setDeducao(BigDecimal.ZERO);//Deducao também
            titulo.setMora(BigDecimal.ZERO);//Mora também
            titulo.setAcrecimo(BigDecimal.ZERO);//Acrecimo também
            titulo.setValorCobrado(BigDecimal.ZERO);//ValorCobrado também[/code]

E os outros campos?Mudaram os nomes?Ja adicionei várias libs e o problema continua

Luciano,

Se vc baixar a versão mais indicada na seção de downloads:

http://code.google.com/p/jrimum/downloads/detail?name=JRimum-Bopepo-SNAPSHOT-20110415-bin.jar

E executar o exemplo de geração padrão do site:

http://www.jrimum.org/bopepo/wiki/Componente/Documentacao/Tutoriais/GeracaoDeBoletoPadrao

Não vai ter problemas a não ser que vc não satisfaça as dependências:

  • Java 1.5 ou superior;
  • iText ( versão compilada: 2.0.8 ) ( versões já testadas 2.0.6 até 2.1.7 ) ;
  • Apache Commons Lang ( 2.4 ) ;
  • Apache log4j ( 1.2.15 ).

Se vc fizer isso e ainda sim der erro, então posta aqui o erro.

Quando eu compilo da esse erro:

Exception in thread "main" br.com.nordestefomento.jrimum.bopepo.campolivre.CampoLivreException: java.lang.NullPointerException at br.com.nordestefomento.jrimum.bopepo.campolivre.AbstractCampoLivre.create(AbstractCampoLivre.java:210) at br.com.nordestefomento.jrimum.bopepo.campolivre.CampoLivreFactory.create(CampoLivreFactory.java:85) at br.com.nordestefomento.jrimum.bopepo.Boleto.<init>(Boleto.java:159) at model.NewClass.main(NewClass.java:115) Caused by: java.lang.NullPointerException at br.com.nordestefomento.jrimum.bopepo.campolivre.CLBradesco.<init>(CLBradesco.java:119) at br.com.nordestefomento.jrimum.bopepo.campolivre.AbstractCLBradesco.create(AbstractCLBradesco.java:65) at br.com.nordestefomento.jrimum.bopepo.campolivre.AbstractCampoLivre.create(AbstractCampoLivre.java:130) ... 3 more Java Result: 1

O código esta assim:

[code] Cedente cedente = new Cedente(“PROJETO JRimum”, “00.000.208/0001-00”);

            /*
             * INFORMANDO DADOS SOBRE O SACADO.
             */
            Sacado sacado = new Sacado("JavaDeveloper Pronto Para Férias", "222.222.222-22");

            // Informando o endereço do sacado.
            Endereco enderecoSac = new Endereco();
            enderecoSac.setUF(UnidadeFederativa.RN);
            enderecoSac.setLocalidade("Natal");
            enderecoSac.setCep(new CEP("59064-120"));
            enderecoSac.setBairro("Grande Centro");
            enderecoSac.setLogradouro("Rua poeta dos programas");
            enderecoSac.setNumero("1");
            sacado.addEndereco(enderecoSac);

            /*
             * INFORMANDO DADOS SOBRE O SACADOR AVALISTA.
             */
            SacadorAvalista sacadorAvalista = new SacadorAvalista("JRimum Enterprise", "00.000.000/0001-91");

            // Informando o endereço do sacador avalista.
            Endereco enderecoSacAval = new Endereco();
            enderecoSacAval.setUF(UnidadeFederativa.DF);
            enderecoSacAval.setLocalidade("Brasília");
            enderecoSacAval.setCep(new CEP("59000-000"));
            enderecoSacAval.setBairro("Grande Centro");
            enderecoSacAval.setLogradouro("Rua Eternamente Principal");
            enderecoSacAval.setNumero("001");
            sacadorAvalista.addEndereco(enderecoSacAval);

            /*
             * INFORMANDO OS DADOS SOBRE O TÍTULO.
             */
            
            // Informando dados sobre a conta bancária do título.
            ContaBancaria contaBancaria = new ContaBancaria(BancoSuportado.BANCO_BRADESCO.create());
            contaBancaria.setNumeroDaConta(new NumeroDaConta(123456, "0"));
            contaBancaria.setCarteira(new Carteira(30));
            //contaBancaria.setAgencia(new Agencia(1234, "1"));
            
            Titulo titulo = new Titulo(contaBancaria, sacado, cedente, sacadorAvalista);
            titulo.setNumeroDoDocumento("123456");
            titulo.setNossoNumero("99345678912");
            titulo.setDigitoDoNossoNumero("5");
            titulo.setValor(BigDecimal.valueOf(0.23));
            titulo.setDataDoDocumento(new Date());
            titulo.setDataDoVencimento(new Date());
            titulo.setTipoDeDocumento(TipoDeTitulo.DM_DUPLICATA_MERCANTIL);
            titulo.setAceite(EnumAceite.A);
            titulo.setDesconto(new BigDecimal(0.05));
            //titulo.setDeducao(BigDecimal.ZERO);
            //titulo.setMora(BigDecimal.ZERO);
            //titulo.setAcrecimo(BigDecimal.ZERO);
            //titulo.setValorCobrado(BigDecimal.ZERO);
            titulo.setValor(new BigDecimal(5.00));
            titulo.setTipoDeDocumento(TipoDeTitulo.OUTROS);

            /*
             * INFORMANDO OS DADOS SOBRE O BOLETO.
             */
            Boleto boleto = new Boleto(titulo);
            
            boleto.setLocalPagamento("Pagável preferencialmente na Rede X ou em " +
                            "qualquer Banco até o Vencimento.");
            boleto.setInstrucaoAoSacado("Senhor sacado, sabemos sim que o valor " +
                            "cobrado não é o esperado, aproveite o DESCONTÃO!");
            boleto.setInstrucao1("PARA PAGAMENTO 1 até Hoje não cobrar nada!");
            boleto.setInstrucao2("PARA PAGAMENTO 2 até Amanhã Não cobre!");
            boleto.setInstrucao3("PARA PAGAMENTO 3 até Depois de amanhã, OK, não cobre.");
            boleto.setInstrucao4("PARA PAGAMENTO 4 até 04/xx/xxxx de 4 dias atrás COBRAR O VALOR DE: R$ 01,00");
            boleto.setInstrucao5("PARA PAGAMENTO 5 até 05/xx/xxxx COBRAR O VALOR DE: R$ 02,00");
            boleto.setInstrucao6("PARA PAGAMENTO 6 até 06/xx/xxxx COBRAR O VALOR DE: R$ 03,00");
            boleto.setInstrucao7("PARA PAGAMENTO 7 até xx/xx/xxxx COBRAR O VALOR QUE VOCÊ QUISER!");
            boleto.setInstrucao8("APÓS o Vencimento, Pagável Somente na Rede X.");

            /*
             * GERANDO O BOLETO BANCÁRIO.
             */
            // Instanciando um objeto "BoletoViewer", classe responsável pela
            // geração do boleto bancário.
            BoletoViewer boletoViewer = new BoletoViewer(boleto);

            // Gerando o arquivo. No caso o arquivo mencionado será salvo na mesma
            // pasta do projeto. Outros exemplos:
            // WINDOWS: boletoViewer.getAsPDF("C:/Temp/MeuBoleto.pdf");
            // LINUX: boletoViewer.getAsPDF("/home/temp/MeuBoleto.pdf");
            File arquivoPdf = boletoViewer.getPdfAsFile("MeuPrimeiroBoleto.pdf");

            // Mostrando o boleto gerado na tela.
            mostreBoletoNaTela(arquivoPdf);[/code]

Pois é Luciano,

Vc tem que usar o jar:

http://code.google.com/p/jrimum/downloads/detail?name=JRimum-Bopepo-SNAPSHOT-20110415-bin.jar

Onde os pacotes começam com:

org.jrimum

Pelo erro vc ainda está tentando usar a versão 0.3.x

Agora sim, funcionou, limpei o projeto e deixei ai ele rodou ^^ Só que agora to passando por outro probleminha, vi no site como exibir o relatório no browser usando servlets, mas quero exibir usando beans, alguem ja fez isso?

Muito bom Luciano!!

Minha sugestão é que vc se inscreva no grupo:

https://groups.google.com/forum/?hl=pt#!forum/jrimum-community

Que muita gente lá utiliza swing e poderá te ajudar também. Poste essa dúvida lá.

Mas a abordagem do problema é basicamente: “como mostrar um pdf no swing”

Bom, isso se vc estiver falando de swing, quando vc diz beans.

Não estou usando swing não, minha aplicação é web, estou utilizando JSF+PrimeFaces

Luciano,

Agora nao vou poder colocar o exemplo. Nao estou mas no pc agora. De qualquer forma, pesquise lah no grupo q essa informação já tem lá.

To de saída… t+