Layout - carnê

1,901 views
Skip to first unread message

WELSON SANTOS

unread,
Nov 29, 2010, 11:54:14 AM11/29/10
to jrimum-c...@googlegroups.com
Pessoal ja existe algum layout no formato de carnê ?

--
------------------------------------------------------------- 
Att,
Welson Santos
Analista e Engenheiro de Software
-------------------------------------------------------------

Karlos Thadeu

unread,
Nov 29, 2010, 1:36:40 PM11/29/10
to jrimum-c...@googlegroups.com
Olá Welson, eu já fiz um modelo de layout estilo carnê.A única coisa que está faltando é homologar o mesmo junto à Caixa Econômica Federal.

Eu cheguei também até a comentar com o pessoal do projeto sobre a possibilidade de imprimir 2 ou 3 boletos por página para "economizar". 

2010/11/29 WELSON SANTOS <welson...@gmail.com>

--
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.

boleto_sem_avalista_backup.odt

WELSON SANTOS

unread,
Nov 29, 2010, 2:45:04 PM11/29/10
to jrimum-c...@googlegroups.com
blz Karlos parabens. eu vou precisar apenas do layout mesmo, pois eu vou gerar guia de recebimentos em forma de carne, e nao boletos vou ver se eles aceitam este modelo. E quanto a questão das tres vias em uma unica folha, é uma otima ideia, vamos tentar leva-la pra frente.

de ja agredeço a voce e a todos que fazer parte do projeto.

Bruno Renato

unread,
Aug 13, 2013, 9:23:18 AM8/13/13
to jrimum-c...@googlegroups.com
Welson você conseguiu o layout no estilo carnê? Eu consegui implantar o layout padrão aquele maior, mas precisava desse tipo carnê com 3 boletos por folha, você tem ele disponível? 

WELSON SANTOS

unread,
Aug 13, 2013, 12:30:31 PM8/13/13
to jrimum-c...@googlegroups.com
Bruno rpz eu estou usando ah um bom tempo este layout para diversos.

Em anexo segue o odt e pdf.

Para imprimir os tres numa unica pagina eu usei o seguinte codigo


 for (org.jrimum.bopepo.Boleto boleto : boletosJRimum) {
                boletosEmBytes.add(boletoViewer.setBoleto(boleto).getPdfAsByteArray());
        }
        try {
                //Criando o arquivo com os boletos da lista
                return mergeFilesInPages(boletosEmBytes);
                
        } catch (Exception e) {
                throw new IllegalStateException("Erro durante geração do PDF! Causado por " + e.getLocalizedMessage(), e);
        }


public static byte[] mergeFilesInPages(List<byte[]> pdfFilesAsByteArray) throws DocumentException, IOException {
   
Document document = new Document();
        ByteArrayOutputStream byteOS = new ByteArrayOutputStream();
        
PdfWriter writer = PdfWriter.getInstance(document, byteOS);
document.open();
PdfContentByte cb = writer.getDirectContent();
float pagePosition = 0;
//Para cada arquivo da lista, cria-se um PdfReader, responsável por ler o arquivo PDF e recuperar informações dele.
for (byte[] pdfFile : pdfFilesAsByteArray) {
       
   PdfReader reader = new PdfReader(pdfFile);

   //Faz o processo de mesclagem por página do arquivo, começando pela de número 1.
   for (int i = 1; i <= reader.getNumberOfPages(); i++) {
       
       float documentHeight = cb.getPdfDocument().getPageSize().getHeight();
       //Importa a página do PDF de origem
       PdfImportedPage page = writer.getImportedPage(reader, i);
       pagePosition += page.getHeight();
       
       /*
        * Se o valor na posi��o atual (pagePosition) ultrapassar o tamanho da página, criar uma nova.
        */
       if ( (documentHeight - pagePosition) <=  0) {
               document.newPage();
               pagePosition = page.getHeight();
       }
       
               
       //Adiciona a página ao PDF destino
       cb.addTemplate(page, 0, documentHeight - pagePosition);
   }
   
   
}

byteOS.flush();
document.close();
byte[] arquivoEmBytes = byteOS.toByteArray();
byteOS.close();
return arquivoEmBytes;
}
BoletoCarne3PorPagina.odt
BoletoCarne3PorPagina.pdf

Diego Adriano

unread,
Jun 20, 2014, 4:14:04 PM6/20/14
to jrimum-c...@googlegroups.com
Welson .. Poderia por favor me ajudar  a gerar o codigo para impressao do Boleto ? Vlw

WELSON SANTOS

unread,
Jun 20, 2014, 4:59:32 PM6/20/14
to jrimum-c...@googlegroups.com
Diego Adriano Não entendi muito bem o que você me pediu, você especificar melhor.


--

Diego Adriano

unread,
Jun 20, 2014, 5:19:28 PM6/20/14
to jrimum-c...@googlegroups.com
Então .. eu montei um codigo de exemplo para gerar os boletos ...
Porém, não consigo gerar ele em carnê, ele é gerado Normal ...
E tb não estou conseguindo usar essa linha: "File tamplatePersonalizado = new File(ClassLoader.getSystemResource("/resources/boleto/Carne3PorPagina.pdf").getFile());"
qdo descomento ela, acaba dando um erro do NullPointerException


public void geraBoleto(List<TituloTeste> titulos/*, Empresa empresa*/){
System.out.println("Gerando B");
List<Boleto> boletos = new ArrayList<Boleto>();
 
for(TituloTeste titulo : titulos){
System.out.println("Gerando B tit: "+titulo.getNumTit());
System.out.println("cedente");
Cedente cedente = new Cedente("Sport Academia", "00.000.208/0001-00");/*empresa.getNomeFantasia(), empresa.getCnpj()*/
System.out.println("sacado");
Sacado sacado = new Sacado("Diego Adriano","222.222.222-22");
System.out.println("endereco");
Endereco endereco = new Endereco();
endereco.setLogradouro("RUA SAO MAETHEUS");
endereco.setLocalidade("EXTREMA");
endereco.setCep("37640-000");
endereco.setBairro("CENTRO");
endereco.setNumero("70");
System.out.println("add endereco");
sacado.addEndereco(endereco);
System.out.println("conta b");
ContaBancaria contaBancaria = new ContaBancaria(BancosSuportados.CAIXA_ECONOMICA_FEDERAL.create());
contaBancaria.setNumeroDaConta(new NumeroDaConta(20151,"1"));
contaBancaria.setCarteira(new Carteira(8));
       contaBancaria.setAgencia(new Agencia(2051, "6"));
     
       System.out.println("titulo boleto");
       Titulo titBoleto = new Titulo(contaBancaria, sacado, cedente);
       
       titBoleto.setNumeroDoDocumento(titulo.getNumTit());
       titBoleto.setNossoNumero("32345678901234");
       titBoleto.setDigitoDoNossoNumero("123");
       titBoleto.setValor(new BigDecimal(titulo.getVlrTit()));
       titBoleto.setDataDoDocumento(new Date());
       titBoleto.setDataDoVencimento(new Date());
       titBoleto.setTipoDeDocumento(TipoDeTitulo.DM_DUPLICATA_MERCANTIL);
       titBoleto.setAceite(Aceite.N);
       titBoleto.setDesconto(BigDecimal.ZERO);
       titBoleto.setDeducao(BigDecimal.ZERO);
       titBoleto.setMora(BigDecimal.ZERO);
       titBoleto.setAcrecimo(BigDecimal.ZERO);
       titBoleto.setValorCobrado(BigDecimal.ZERO);
       
       
       
       System.out.println("new boleto");
       Boleto boleto = new Boleto(titBoleto);
       System.out.println("boleto pgto");
boleto.setLocalPagamento("Pagável preferencialmente na Caixa Econômica ou em qualquer Banco até o Vencimento.");
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.setInstrucao8("NÃO RECEBER APÓS 15 DIAS DO VENCIMENTO.");
System.out.println("add boletos");
boletos.add(boleto);
}
//imprime(boletos);
mostraNaTela(boletos);
}

public void mostraNaTela(List<Boleto> boletos){
System.out.println("Mostra");//groupInOnePDF(boletos, "null");
try {
//INFORMANDO O TAMPLATE PERSONALIZADO new File(ClassLoader.getSystemResource("/boleto/BoletoCarne3PorPagina.pdf").getFile());
//File tamplatePersonalizado = new File(ClassLoader.getSystemResource("/resources/boleto/Carne3PorPagina.pdf").getFile());
System.out.println("CARREGOU BOLETO");
File boletosPorPagina = groupInPages(boletos, "Carne3PorPagina.pdf"/*, tamplatePersonalizado*/);
System.out.println("ABRINDO");
// Descomente se estiver usando java 6 ou superior
java.awt.Desktop.getDesktop().open(boletosPorPagina);
 
} catch (Exception e) {
System.err.println("Erro ao Mostrar: "+e.getMessage());
}
}
public static File groupInPages(List<Boleto> boletos, String filePath/*, File tamplatePersonalizado*/){
System.out.println("GIP");
File arq = null;
BoletoViewer boletoViewer = new BoletoViewer(boletos.get(0));
//boletoViewer.setTemplate(tamplatePersonalizado);
List<byte[]> boletosEmBytes = new ArrayList<byte[]>(boletos.size());
for(Boleto boleto : boletos){System.out.println("FOR");
boletosEmBytes.add(boletoViewer.setBoleto(boleto).getPdfAsByteArray());
}
try {
System.out.println("TRY ARQ");
arq = org.jrimum.bopepo.pdf.Files.bytesToFile(filePath, mergeFilesInPages(boletosEmBytes));
} catch (Exception e) {
System.err.println("Erro ao Gerar Boleto: "+e.getLocalizedMessage());

}
return arq;
}
public static byte[] mergeFilesInPages(List<byte[]> pdfFilesAsByteArray ) throws DocumentException, IOException, com.lowagie.text.DocumentException{
System.out.println("MFINP");
Document document = new Document();
ByteArrayOutputStream byteOS = new ByteArrayOutputStream();
PdfWriter pdfWriter = PdfWriter.getInstance(document, byteOS);
document.open();
PdfContentByte cb = pdfWriter.getDirectContent();
//float positionAnterior = 0;
float pagePosition = 0;
        
        for (byte[] in : pdfFilesAsByteArray) {
       
            PdfReader reader = new PdfReader(in);
            
            for (int i = 1; i <= reader.getNumberOfPages(); i++) {
           
            float documentHeight = cb.getPdfDocument().getPageSize().getHeight();

            //import the page from source pdf
            PdfImportedPage page = pdfWriter.getImportedPage(reader, i);
            pagePosition =+ page.getHeight();//positionAnterior;
           
            if ( (documentHeight - pagePosition) <= 0 /*page.getHeight()*/) {
            document.newPage();
            pagePosition = page.getHeight();
            //pagePosition = 0;
            //positionAnterior = 0;
            }
           
                //add the page to the destination pdf
                cb.addTemplate(page, 0, documentHeight-pagePosition/*pagePosition*/);
                
                //positionAnterior += page.getHeight();
            }
        }
        
        byteOS.flush();
        document.close();
        
        byte[] arquivoEmBytes = byteOS.toByteArray();
        byteOS.close();
        
        return arquivoEmBytes;
}

WELSON SANTOS

unread,
Jun 20, 2014, 5:43:56 PM6/20/14
to jrimum-c...@googlegroups.com
Baixa o templete que eu anexei nas mensagem numero 5 desta postagem, e tenta utilizar.


--

Diego Adriano

unread,
Jun 23, 2014, 8:23:43 AM6/23/14
to jrimum-c...@googlegroups.com
Gera erro nesse ponto: File tamplatePersonalizado = new File(ClassLoader.getSystemResource("/resources/boleto/Carne3PorPagina.pdf").getFile());
"Erro ao Mostrar: null" NullPointerException

WELSON SANTOS

unread,
Jun 23, 2014, 8:42:57 AM6/23/14
to jrimum-c...@googlegroups.com
Este erro esta gerando por que provavelmente o Carne3PorPagina.pdf não esta na pasta resources.o caminha deve esta errado, por isso não esta sendo encontrado.


--

Diego Adriano

unread,
Jun 23, 2014, 9:00:07 AM6/23/14
to jrimum-c...@googlegroups.com
Então .. esta sim ... coloquei em uma pasta na Raiz e fiz um teste colocando junto na Src ..mas obtive o mesmo erro 



Em segunda-feira, 29 de novembro de 2010 14h54min14s UTC-2, WELSON SANTOS escreveu:
erro.jpg

WELSON SANTOS

unread,
Jun 23, 2014, 9:15:40 AM6/23/14
to jrimum-c...@googlegroups.com
a referencia esta errada o nome do pdf é BoletoCarne3PorPagina.pdf e você esta referencia apenas Carne3PorPagina.pdf.


--
--
Você recebeu esta mensagem porque está inscrito no Grupo "JRimum
Community" nos Grupos do Google.

Para postar neste grupo, envie um e-mail para
jrimum-c...@googlegroups.com
ANTES DE POSTAR... leia:
https://groups.google.com/d/topic/jrimum-community/ULU8QHHgaBs/discussion
Para cancelar a sua inscrição neste grupo, envie um e-mail para
jrimum-communi...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/jrimum-community?hl=pt-BR?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo quot;JRimum Community" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jrimum-communi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Diego Adriano

unread,
Jun 23, 2014, 9:22:11 AM6/23/14
to jrimum-c...@googlegroups.com
realmente .. eu havia mudado pra testar outro tamplate .. porém voltei e continua o erro:

File tamplatePersonalizado = new File(ClassLoader.getSystemResource("/resources/boleto/BoletoCarne3PorPagina.pdf").getFile());

Erro ao Mostrar: null

Em segunda-feira, 29 de novembro de 2010 14h54min14s UTC-2, WELSON SANTOS escreveu:

Diego Adriano

unread,
Jun 23, 2014, 9:50:24 AM6/23/14
to jrimum-c...@googlegroups.com
Resolvi o problema !!
Vlw a força !!


Em segunda-feira, 29 de novembro de 2010 14h54min14s UTC-2, WELSON SANTOS escreveu:

Leonardo Davi

unread,
Aug 31, 2015, 9:37:24 AM8/31/15
to JRimum Community
amigo, bom dia, to tendo o mesmo problema que voce teve, como voce fez para arrumar?

Diego Adriano

unread,
Aug 31, 2015, 9:44:04 AM8/31/15
to jrimum-c...@googlegroups.com
Opa .. foi mal a demora ..
Aqui ...

File tamplatePersonalizado = new File((getContext() + "resources//boleto//layoute//BoletoCarne3PorPagina.pdf"))

public String getContext() {
if (context == null) {
FacesContext fc = FacesContext.getCurrentInstance();
ServletContext servletContext = (ServletContext) fc.getExternalContext().getContext();
context = servletContext.getRealPath("/");
}
return context;
}

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "JRimum
Community" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
jrimum-c...@googlegroups.com
ANTES DE POSTAR... leia:
https://groups.google.com/d/topic/jrimum-community/ULU8QHHgaBs/discussion
Para cancelar a sua inscrição neste grupo, envie um e-mail para
jrimum-communi...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/jrimum-community?hl=pt-BR?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "JRimum Community" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/jrimum-community/LkHW2bI0mtM/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para jrimum-communi...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
Diego Adriano
Programador Java Web(JSF, JPA, Hibernate, iReport, iText, PrimeFaces)
Desenvolvedor Android
SAP R/3 - ABAP Development
msn: apc_...@hotmail.com

Leonardo Davi

unread,
Aug 31, 2015, 1:03:49 PM8/31/15
to JRimum Community
acho que isso ja resolvi, agora o problema é encontrar a template, eu referenciei certinho e fala que não é possivel encontrar, alguem sabe o que pode ser?

o erro:
Exception in thread "main" java.lang.IllegalStateException: java.io.FileNotFoundException: C:\Users\HERMANOS%2001\Documents\NetBeansProjects\boleto\build\classes\BoletoCarne3PorPagina.pdf (O sistema não pode encontrar o caminho especificado)
at org.jrimum.utilix.Exceptions.throwIllegalStateException(Exceptions.java:163)
at org.jrimum.bopepo.view.PdfViewer.setTemplate(PdfViewer.java:286)
at org.jrimum.bopepo.view.BoletoViewer.setTemplate(BoletoViewer.java:1226)
at BoletoCarne3PorPagina.groupInPages(BoletoCarne3PorPagina.java:61)
at BoletoCarne3PorPagina.main(BoletoCarne3PorPagina.java:52)
Caused by: java.io.FileNotFoundException: C:\Users\HERMANOS%2001\Documents\NetBeansProjects\boleto\build\classes\BoletoCarne3PorPagina.pdf (O sistema não pode encontrar o caminho especificado)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at org.jrimum.bopepo.pdf.Files.fileToBytes(Files.java:194)
at org.jrimum.bopepo.view.PdfViewer.setTemplate(PdfViewer.java:284)
... 3 more
Java Result: 1

Diego Adriano

unread,
Aug 31, 2015, 2:24:55 PM8/31/15
to jrimum-c...@googlegroups.com
Então cara ...o arquivo vai para o Context da aplicação e não para o endereço físico .. por isso que no meu método lá tem um "getContext()";

Leonardo Davi

unread,
Aug 31, 2015, 2:32:31 PM8/31/15
to JRimum Community
E como posso resolver isso?

Diego Adriano

unread,
Aug 31, 2015, 2:34:53 PM8/31/15
to jrimum-c...@googlegroups.com
daquela forma que lhe enviei ..

Dimas Kastiberg

unread,
Oct 6, 2015, 4:07:49 PM10/6/15
to JRimum Community
Diego ótimo trabalho parabéns! Me ajuda com uma coisa, como inserir o N. da Parcela? 

Kleber Cardoso

unread,
Jan 7, 2016, 2:07:17 PM1/7/16
to JRimum Community
Boa tarde a todos.

Estou com um problema na homologação do boleto modelo carnê. Enviei um modelo gerado para o itaú e o retorno foi esse:

Não foi possível realizar a homologação de boletos devido á incorreção dos seguintes dados:

 

 

1 ) O ENDEREÇO BENEFICIÁRIO (antigo CEDENTE) / SACADOR AVALISTA: deve ser informado o endereçocompleto do BENEFICIÁRIO com o CNPJ. Se o título possuir a figura de Sacador Avalista o endereço informado deverá ser do Sacador Avalista, conforme Lei Federal 12.039 de 01/10/2009, conforme modelo do boleto pag.52, Layout Cobrança Itaú cnab 400 pos, ou pag.40, Layout Febraban 240 pos;


Alguem passou por isso? Neste modelo não tem ONDE por o campo mencionado.

Agradeço a ajuda. 

angelo lefundes

unread,
Jan 14, 2016, 4:58:07 PM1/14/16
to JRimum Community
Boa tarde pessoal,

O layout do modelo em anexo nas mensagens anteriores, alguém tem ele em formato html?
Reply all
Reply to author
Forward
0 new messages