Iniciando a utilizar o Bopepo.

1700 views
Skip to first unread message

Encoder

unread,
Apr 11, 2011, 2:18:59 PM4/11/11
to JRimum Community
Boa tarde pessoal,

estava num forum e queria saber uma forma eficiente de desenhar
boletos e exporta-lo para *.PDF. Dae então, me indicaram o bopepo,
pois utiliza itext + commons lang + log4j...

enfim, como é o meu primeiro contato, eu gostaria que vcs me
ajudassem. como eu desenho o layout do boleto ? Estou meio perdido.

Euclides Filizola

unread,
Apr 11, 2011, 3:08:39 PM4/11/11
to JRimum Community
Bem, eu tentei utilizar esse modelo: http://www.jrimum.org/bopepo/wiki/Componente/Documentacao/Tutoriais/GeracaoDeBoletoPadrao ,

mas está dando erro porque não tenho a classe BancosSuportados.

E ae da erro nesta linha:

 ContaBancaria contaBancaria = new ContaBancaria(BancosSuportados.BANCO_BRADESCO.create());
      






--
Você está recebendo esta mensagem porque se inscreveu no grupo "JRimum Community" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para jrimum-c...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para jrimum-communi...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/jrimum-community?hl=pt-BR.




--
Euclides Filizola ® - Java Developer.


OCJP 6.0 - Coming Soon.
#£n¢0d£r#

"A própria idéia  de reconfigurar uma máquina para que ela faça uma quantidade aparentemente infinita de tarefas é forte e fascinante"

Gilmar P.S.L.

unread,
Apr 11, 2011, 3:14:39 PM4/11/11
to jrimum-c...@googlegroups.com
Olá Euclides,..

Qual versão do Bopepo vc está utilizando?

O exemplo é para versões 0.2.3-x

Você chegou a ver o aviso em: http://www.jrimum.org/jrimum/wiki/Projeto/Download

Baixe a versão Hélio:

2011/02/09 -  Binary |  Source

Se não der certo é só dizer.

Atenciosamente
------------------------------------------------------
Gilmar P.S.L.
@gilmatryx



2011/4/11 Euclides Filizola <euclides...@gmail.com>

Euclides Filizola

unread,
Apr 11, 2011, 3:22:01 PM4/11/11
to jrimum-c...@googlegroups.com
Opa Gilmar,

obrigado pela atenção.

Vou baixar a versão Helio então para testar.

Caso não consiga, volto a entrar em contato aqui com o grupo.

Abraços.

Euclides Filizola

unread,
Apr 12, 2011, 12:54:10 AM4/12/11
to jrimum-c...@googlegroups.com
Boa noite pessoal, 

estou tentando criar um template para o jrimum bopepo, porém não está funcionando. 

está dando o erro.

log4j:WARN No appenders could be found for logger (org.jrimum.bopepo.Boleto).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.IllegalStateException: Erro ao tentar criar arquivo! Causado por PDF header signature not found.
at org.jrimum.bopepo.view.PdfViewer.getFile(PdfViewer.java:248)
at org.jrimum.bopepo.view.PdfViewer.getFile(PdfViewer.java:227)
at org.jrimum.bopepo.view.BoletoViewer.getPdfAsFile(BoletoViewer.java:648)
at BoletoTeste.main(BoletoTeste.java:127)
Caused by: java.io.IOException: PDF header signature not found.
at com.lowagie.text.pdf.PRTokeniser.checkPdfHeader(Unknown Source)
at com.lowagie.text.pdf.PdfReader.readPdf(Unknown Source)
at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)
at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)
at org.jrimum.bopepo.view.PdfViewer.inicializar(PdfViewer.java:392)
at org.jrimum.bopepo.view.PdfViewer.processarPdf(PdfViewer.java:327)
at org.jrimum.bopepo.view.PdfViewer.getFile(PdfViewer.java:240)
... 3 more



.. Porém eu quero que vocês vejam o modelo que eu quero criar, Está em anexo.

Será que da para eu criar um modelo desse jeito ?
dae.pdf

Euclides Filizola

unread,
Apr 12, 2011, 12:54:52 AM4/12/11
to jrimum-c...@googlegroups.com
Só um detalhe: esses valores eu irei receber de um ArrayList, e joga-los no boleto.

Rômulo Augusto

unread,
Apr 12, 2011, 7:35:03 AM4/12/11
to jrimum-c...@googlegroups.com
Opa Euclides!

Cara, esse erro ocorre quando você tá tentando abrir um arquivo que não é um PDF com iText (vi aqui).
Pode passar o template que você criou pra a gente testar?

Outra coisa... pelo modelo em anexo, o que você tá querendo gerar não é um boleto, mas uma guia de arrecadação (dá pra perceber pelo formato da linha digitável).
Veja algumas threads sobre o assunto:

https://groups.google.com/d/topic/jrimum-community/L3ysaSH_f48/discussion


-------------------------------------------------------------------
Rômulo Augusto
JRimum Developer
www.jrimum.org
P Antes de imprimir, pense em seu compromisso com o meio ambiente

Euclides Filizola

unread,
Apr 12, 2011, 7:55:32 AM4/12/11
to jrimum-c...@googlegroups.com
Bom dia pessoal,

pois é romulo, é um guia de arrecadação. Mas eu posso fazer como se fosse um boleto, não posso?

Tipo, eu desenhar ele no openOffice, criar as variaveis que eu achar interessante, e gerar o codigo de barra. Não funciona assim ?

Euclides Filizola

unread,
Apr 12, 2011, 8:03:41 AM4/12/11
to jrimum-c...@googlegroups.com
Só um detalhe, ontem a noite eu consegui gerar o boleto e tudo mais, estou utilizando a lib JRimum-Bopepo-SNAPSHOT-20110209-bin.jar

Mas como o romulo falou anteriormente, eu estou querendo uma guia de arrecadação, da sefaz e não um boleto.

Então vamos as perguntas:

1 - Qual a diferença de boleto e guia de arrecadação ?

2 - Se eu estiver errado, tanto um como o outro, eu posso desenhar todo no openOffice e gera-los da forma que eu achar interessante, não posso ?

3 - O código de barra, eu vou receber a numeração e gerar a imagem, então pra mim não preciso carregar um boleto especifico de um banco X,Y,Z. Estou certo?




Qualquer erro, por favor me corrijam, sou totalmente iniciante nessa parte de boletos, banco e etc... e não entendo ainda como funciona.


Agradeço a atenção de todos.







Em 12 de abril de 2011 08:35, Rômulo Augusto <romul...@gmail.com> escreveu:



--

Misael Barreto de Queiroz

unread,
Apr 12, 2011, 9:39:28 AM4/12/11
to jrimum-c...@googlegroups.com
Olá Euclides, tudo bom?

Respondendo as suas perguntas...


1 - Qual a diferença de boleto e guia de arrecadação ?
De maneira resumida, a guia seria um "boleto mais simples", de menor custo para o órgão recebedor, geralmente pago somente em um banco. No caso o órgão recebedor estabelece um convênio com o banco que irá receber os pagamentos.


2 - Se eu estiver errado, tanto um como o outro, eu posso desenhar todo no openOffice e gera-los da forma que eu achar interessante, não posso ?
Yes, you can! :)
Inclusive pode criar novos campos, quem podem ser texto, imagem etc.

3 - O código de barra, eu vou receber a numeração e gerar a imagem, então pra mim não preciso carregar um boleto especifico de um banco X,Y,Z. Estou certo?
A partir dos dados que você informar ao componente, o componente se encarrega de gerar tudo pra você: código de barras, linha digitável (representação numérica do código de barras - Ex: 81690000002-6  47092594201-8  10415111000-4  00001776721-1)


Valdinei, no caso pelo PDF que você envou como exemplo, você realmente está querendo gerar uma guia. Você poderia fazer um "test drive" usando o snapshot Bopepo-0.3-Litio-GeracaoGuia-VersaoAvaliacao-2010-09-17.jar.
http://code.google.com/p/jrimum/downloads/detail?name=Bopepo-0.3-Litio-GeracaoGuia-VersaoAvaliacao-2010-09-17.jar&can=2&q=


No caso a guias suportadas nativamente são para o Banco do Brasil. Ver classe exemplo br.com.nordestefomento.jrimum.bopepo.exemplo.guia.MinhaPrimeiraGuia.
A classe exemplo exemplo br.com.nordestefomento.jrimum.bopepo.exemplo.guia.MinhaPrimeiraGuiaParaBancoNaoSuportadoNativamente também pode te ajudar bastante, caso seja um outro banco ou o campo livre não suportado nativamente.

Dá uma olhada nas threads indicadas por Romulinho, isso pode te ajudar a entender melhor:
Você poderia nos adiantar informações acerca da guia que você quer gerar. Exemplo?
A - Tipo de segmento do órgão recebedor.
B - A guia pode ser paga em um banco ou vários bancos?
C - O órgão recebedor possui código de convênio com o banco? Qual seria?
D - Ó órgão recebedor possui um código de indentificação junto a FEBRABAN?
E - Algo mais que você queira adiantar?


Mantenha contato aí que o JRimum vai te auxiliar a gerar rapidinho essas guias.
Um abraço.


Misael Barreto
JRimum Developer


http://www.jrimum.org
http://www.blog.jrimum.org

Euclides Filizola

unread,
Apr 12, 2011, 10:07:48 AM4/12/11
to jrimum-c...@googlegroups.com
Beleza Misael,

assim que tiver um tempim eu olho, ontem eu fiquei até as 4 horas da manhã olhando essas paradas de boleto, relatorio, cod barra e etc... to cego cego... ehehe.. quando eu testar a parte de guia de vocês, eu dou um retorno.



Mas é um projeto muito bom, bem elaborado, e o melhor, é do sangue NE.



Abraços.

Euclides Filizola

unread,
Apr 13, 2011, 9:39:37 AM4/13/11
to jrimum-c...@googlegroups.com
Bom dia pessoal,

estou tentando gerar o código de barra, mas tenho alguns problemas:

Primeio, ao tentar instanciar a classe CodigoBarra, eu não sei como setar o parametro "campolivre" já que é uma interface.

Gostaria de saber como eu coloco o número para ele gerar a imagem.

Outro problema, no formulário no openOffice, não tem a opção "imagem" no controle de formulario, então como é que a imagem é gerada ?


Agradeço a atenção.

Gilmar P.S.L.

unread,
Apr 13, 2011, 10:03:28 AM4/13/11
to jrimum-c...@googlegroups.com
Olá Euclides,

Minha primeira pergunta é:

Você realmente precisa de um layout personalizado?

A segunda é, se precisa então:

Você realmente precisa gerar o código de barras separadamente?

Terceiria, se você precisa de tudo isso:

Você já abriu os layouts (templates) padrão para ver como os campos são definidos?

Ok? Responde essas perguntas pra a gente poder te guiar melhor.


Atenciosamente
------------------------------------------------------
Gilmar P.S.L.
@gilmatryx



2011/4/13 Euclides Filizola <euclides...@gmail.com>

Euclides Filizola

unread,
Apr 13, 2011, 10:09:10 AM4/13/11
to jrimum-c...@googlegroups.com
Bom dia,

preciso de um layout personalizado, tem q ser justamente igual aquela imagem que eu enviei.

Preciso gerar o código de barras separadamente, porque eu vou receber os dados via web-service  e com isso, ele deve vir a numeração padrão, um string com 25 posições normalmente.

A parte de layout, eu já consegui fazer, e trazer os dados bonitinhos conforme aquele que enviei, agora preciso gerar o código de barras.... no qual eu estou meio enrolado ...

Euclides Filizola

unread,
Apr 13, 2011, 10:11:55 AM4/13/11
to jrimum-c...@googlegroups.com
Outra coisa,

eu não to encontrando exemplos de código de guia de recolhimento tão abundante, quanto tem de boleto. Por esse motivo, meu codigo está como se fosse um boleto, pois não consigo visualizar codigo de guia de arrecadação. Já que um DAE é uma arrecadação.

Euclides Filizola

unread,
Apr 13, 2011, 10:40:48 AM4/13/11
to jrimum-c...@googlegroups.com
???

Gilmar P.S.L.

unread,
Apr 13, 2011, 2:00:22 PM4/13/11
to jrimum-c...@googlegroups.com
Euclides,

Nessa thread tem um lalyout prxóximo do seu:

https://groups.google.com/d/topic/jrimum-community/rFbEshoyG4I/discussion

Link direto para o arquivo:

https://groups.google.com/group/jrimum-community/attach/a0dbd295c1b060a3/TemplateGuia_DER-CE.odt

Agora quanto ao código de barras, ...
Basta vc definir um campo no template com o nome "txtCodigoBarra" que o bopepo preencherá com a imagem.

Quanto a isso:


Preciso gerar o código de barras separadamente, porque eu vou receber os dados via web-service  e com isso, ele deve vir a numeração padrão, um string com 25 posições normalmente.

Não entendi, vc está dizendo que o código de barras será fornecido numericamente por este webservice? Lembrando que o código de barras mesmo tem 44 posições.

Atenciosamente

Gilmar P.S.L.

unread,
Apr 13, 2011, 2:04:34 PM4/13/11
to jrimum-c...@googlegroups.com
E  quanto a isso:
 
Outra coisa,

eu não to encontrando exemplos de código de guia de recolhimento tão abundante, quanto tem de boleto. Por esse motivo, meu codigo está como se fosse um boleto, pois não consigo visualizar codigo de guia de arrecadação. Já que um DAE é uma arrecadação.

Veja os exemplos no pacote:

 br.com.nordestefomento.jrimum.bopepo.exemplo.guia

Euclides Filizola

unread,
Apr 13, 2011, 2:14:44 PM4/13/11
to jrimum-c...@googlegroups.com
Show de Bola Gilmar,
eu vou tentar aqui.

Mas antes de nada, eu estava fazendo uma guia, com o objeto Boleto,

quando eu tentei fazer o contrario deu erro.

Aqui segue o código:

import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Date;


import br.com.nordestefomento.jrimum.bopepo.campolivre.guia.CampoLivre;
import br.com.nordestefomento.jrimum.bopepo.guia.CodigoDeBarras;
import br.com.nordestefomento.jrimum.bopepo.guia.Guia;
import br.com.nordestefomento.jrimum.bopepo.view.guia.GuiaViewer;
import br.com.nordestefomento.jrimum.domkee.financeiro.banco.febraban.guia.Arrecadacao;
import br.com.nordestefomento.jrimum.domkee.financeiro.banco.febraban.guia.Contribuinte;
import br.com.nordestefomento.jrimum.domkee.financeiro.banco.febraban.guia.Convenio;
import br.com.nordestefomento.jrimum.domkee.financeiro.banco.febraban.guia.OrgaoRecebedor;


public class GuiaDAE {


    /**
     * @param args
     */
    public static void main(String[] args) {
       
       
         Guia guia = new Guia();
        
         Convenio convenio = new Convenio();
         
         OrgaoRecebedor orgao = new OrgaoRecebedor();
         
         Contribuinte contribuinte = new Contribuinte();
         
         
         
         Arrecadacao arrecadacao = new Arrecadacao(convenio,orgao,contribuinte);
         
        // CampoLivre campoLivre = new CampoLivre
         
        // CodigoDeBarras codigoDeBarras = new CodigoDeBarras();
         
        // guia.setCodigoDeBarras(codigoDeBarras);
         
       
     

       
        guia.addTextosExtras("TextCodEspecif","1112 - ICMS Estoque Final");
        guia.addTextosExtras("TextDtVencimento", "30/05/2011");
        guia.addTextosExtras("TxtDtLimite","15/06/2011");
        guia.addTextosExtras("TxtNossoNum","2011.23.0033388-84");
        guia.addTextosExtras("TxtPeriodoRef","01/2010");
        guia.addTextosExtras("TxtVlrPrincipal"," *** R$ 1.000,00");
        guia.addTextosExtras("TxtMulta"," **** R$ 150,00");
        guia.addTextosExtras("TxtInfComplementares","DAE IMPRESSO NO SITE WWW.SEFAZ.CE.GOV.BR");
       
        /*
         * GERANDO O BOLETO BANCÃ�RIO.
         */
        // Instanciando um objeto "BoletoViewer", classe responsável pela
        // geração do boleto bancário.
       
       
        GuiaViewer guiaViewer = new GuiaViewer(guia);
        guiaViewer.setTemplate("RELATORIO_DAE.pdf");
     
       
        // 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 = guiaViewer.getPdfAsFile("DAE.pdf");

        // Mostrando o boleto gerado na tela.
        mostreGuiaNaTela(arquivoPdf);
}

/**
 * Exibe o arquivo na tela.
 *
 * @param arquivoBoleto
 */
private static void mostreGuiaNaTela(File arquivoBoleto) {

        java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
       
        try {
                desktop.open(arquivoBoleto);
        } catch (IOException e) {
                e.printStackTrace();

Euclides Filizola

unread,
Apr 13, 2011, 2:21:15 PM4/13/11
to jrimum-c...@googlegroups.com
Bom,

tentei inserir o codigo Barra na mão, e não funcionou.

Tentei dessa forma:

 boleto.addTextosExtras("txtCodigoBarra","85690000121 457000062010 102252011238 003338884004");
 
e aqui está a img anexa de como ficou.
DAE.pdf

Euclides Filizola

unread,
Apr 13, 2011, 2:36:31 PM4/13/11
to jrimum-c...@googlegroups.com
Só reforçando. Todos os dados eu vou receber via WS. E então, eu apenas preciso gerar o DAE, entenderam ? Já vou receber todos os parametro para poder gera-lo.

Gilmar P.S.L.

unread,
Apr 13, 2011, 2:36:36 PM4/13/11
to jrimum-c...@googlegroups.com
Euclides,
 
Passa o template "RELATORIO_DAE.pdf" para eu tentar reproduzir aqui.

Beleza?

Euclides Filizola

unread,
Apr 13, 2011, 2:38:16 PM4/13/11
to jrimum-c...@googlegroups.com
Lá vai mano !
RELATORIO_DAE.odt
RELATORIO_DAE.pdf

Gilmar P.S.L.

unread,
Apr 13, 2011, 2:38:01 PM4/13/11
to jrimum-c...@googlegroups.com
Não entendi,

O código de barras já vai vir pronto ou o bopepo que vai calcular?

Euclides Filizola

unread,
Apr 13, 2011, 2:46:47 PM4/13/11
to jrimum-c...@googlegroups.com
a numeração do código de barra já vem como String,

eu só preciso gerar a imagem do codigo de barra através da numeração.

Entendeu ?

Gilmar P.S.L.

unread,
Apr 13, 2011, 2:46:47 PM4/13/11
to jrimum-c...@googlegroups.com
E aí Euclides?!


O código de barras já vai vir pronto ou o bopepo que vai calcular?

Gilmar P.S.L.

unread,
Apr 13, 2011, 2:47:41 PM4/13/11
to jrimum-c...@googlegroups.com
Entendi.

Euclides Filizola

unread,
Apr 14, 2011, 7:15:08 AM4/14/11
to jrimum-c...@googlegroups.com
Bom dia pessoal,

e ae Gilmar, deu certo cara ?

Euclides Filizola

unread,
Apr 14, 2011, 9:40:48 AM4/14/11
to jrimum-c...@googlegroups.com
E ae, alguém pra poder me ajudar ?

Valdinei Troli

unread,
Apr 14, 2011, 10:02:55 AM4/14/11
to jrimum-c...@googlegroups.com
No início eu tambem já tinha a numeração do código de barras gerado, mas mesmo assim, deixei o componente gerar.
Valdinei Cleyton Troli
Analista de Sistemas

Elotech Informática e Sistemas Ltda.
Rua Giampero Monacci, 14
Jardim Novo Horizonte
Maringá - PR - 87.010-090
Fone: (44) 4009-3550


Euclides Filizola

unread,
Apr 14, 2011, 10:14:31 AM4/14/11
to jrimum-c...@googlegroups.com
Mas não tem como eu gerar, pq eu não vou receber as informações do banco, campo livre.. etc.. essas coisas eu não vou ter acesso.

eu apenas vou receber a numeração e preciso gerar a guia de arrecadação, e nada mais ....

não tem nada mais simples do que isso..

¬¬