-
Notifications
You must be signed in to change notification settings - Fork 344
Gerando boleto
Mario Amaral edited this page Jul 3, 2013
·
5 revisions
Veja um exemplo de geração de boleto para o Banco do Brasil
public class Teste {
public static void main(String[] args) {
Datas datas = Datas.novasDatas()
.comDocumento(1, 5, 2008)
.comProcessamento(1, 5, 2008)
.comVencimento(2, 5, 2008);
Emissor emissor = Emissor.novoEmissor()
.comCedente("Fulano de Tal")
.comAgencia(1824).comDigitoAgencia('4')
.comContaCorrente(76000)
.comNumeroConvenio(1207113)
.comDigitoContaCorrente('5')
.comCarteira(18)
.comNossoNumero(9000206);
Sacado sacado = Sacado.novoSacado()
.comNome("Fulano da Silva")
.comCpf("111.222.333-12")
.comEndereco("Av dos testes, 111 apto 333")
.comBairro("Bairro Teste")
.comCep("01234-111")
.comCidade("São Paulo")
.comUf("SP");
Banco banco = new BancoDoBrasil();
Boleto boleto = Boleto.novoBoleto()
.comBanco(banco)
.comDatas(datas)
.comDescricoes("descricao 1", "descricao 2", "descricao 3", "descricao 4", "descricao 5")
.comEmissor(emissor)
.comSacado(sacado)
.comValorBoleto("200.00")
.comNumeroDoDocumento("1234")
.comInstrucoes("instrucao 1", "instrucao 2", "instrucao 3", "instrucao 4", "instrucao 5")
.comLocaisDePagamento("local 1", "local 2");
GeradorDeBoleto gerador = new GeradorDeBoleto(boleto);
// Para gerar um boleto em PDF
gerador.geraPDF("BancoDoBrasil.pdf");
// Para gerar um boleto em PNG
gerador.geraPNG("BancoDoBrasil.png");
// Para gerar um array de bytes a partir de um PDF
byte[] bPDF = gerador.geraPDF();
// Para gerar um array de bytes a partir de um PNG
byte[] bPNG = gerador.geraPNG();
}
}
##Gerando um Documento PDF com varios Boletos
Boleto[] boletos = {boletoDeJaneiro,boletoDeFevereiro,boletoDeMarco};
BoletoGenerator gerador = new BoletoGenerator(boletos);
gerador.toPDF("boletos.pdf");
De forma análoga, podemos também utilizar o recurso de var args.
new BoletoGenerator(boletoDeJaneiro,boletoDeFevereiro,boletoDeMarco).toPDF("boletos.pdf");
##Gerando Boleto em HTML
Em sistemas web você pode exibir o boleto diretamente em uma página, seguindo o seguinte passo a passo:
- Registre a Servlet do stella-boleto no seu
web.xml
:
<servlet>
<servlet-name>boleto</servlet-name>
<servlet-class>br.com.caelum.stella.boleto.transformer.HTMLBoletoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>boleto</servlet-name>
<url-pattern>/stella-boleto</url-pattern>
</servlet-mapping>
- Para gerar o html dos boletos, use a classe
BoletoTransformer
, em conjunto com a classeHTMLBoletoWriter
. É preciso informar o endereço onde a Servlet do stella-boleto foi registrada:
BoletoTransformer transformer = new BoletoTransformer(new HTMLBoletoWriter("stella-boleto")); // url da servlet
InputStream is = transformer.transform(boleto);
- Agora é necessário utilizar o conteúdo do
InputStream
para escrever no corpo do html. se estiver utilizando o Vraptor o código pode ser o seguinte:
@Path("/boletoHTML")
public void boletoHTML(Integer numeroBoleto){
Boleto boleto = //busca boleto...
BoletoTransformer transformer = new BoletoTransformer(new HTMLBoletoWriter("stella-boleto"));
InputStream is = transformer.transform(boleto);
result.use(Results.http()).addHeader("Content-Type","text/html").body(inputStream).setStatusCode(200);
}
- Aceite: diz se o banco deve aceitar o boleto após a data de vencimento. Padrão: 'N'
- Espécie de Documento: identificador do tipo de boleto. Padrão: "DV"
- Número do Documento: código informado pelo banco para identificação do cliente
- Carteira: código informado pelo banco pra identificação do tipo do boleto
- Número do Convênio: código que identifica um emissor junto ao seu banco para associar seus boletos. Fornecido pelo banco
- Nosso Número: código que o cedente escolhe para manter controle sobre seus boletos. Esse valor serve para o cedente identificar quais boletos foram pagos ou não. Recomenda-se o uso de números sequênciais, na geração de diversos boletos, para facilitar a identificação dos boletos pagos
- Cedente: nome do emissor
- Emissor: pessoa/empresa que gera o boleto
- Sacado: pessoa/empresa que deve pagar o boleto