Skip to content

Customizando o layout dos boletos

Mario Amaral edited this page Mar 17, 2014 · 2 revisions

A forma mais simples para customizar os templates utilizados para gerar os boletos é realizar o download do Ireport ou do JasperStudio, ambos disponíveis para download na página de downloads da JasperSoft. São ferramentas que permitirão a você editar o layout dos boletos de maneira gráfica, sendo mais simples de utilizar do que editar manualmente o xml com o template.

Após o download e instalação da ferramenta escolhida, basta abrir os arquivos jrxml que contém os templates usados por padrão no Stella-Boleto e edita-los para atender suas necessidades. Você pode encontrar esses arquivo dentro da pasta templates do código fonte. São dois arquivos, um com o layout principal do boleto (boleto-default.jrxml) e outro com um subrelatório para exibição das instruções do boleto (boleto-default_instrucoes.jrxml).

Não faz parte do escopo desse tutorial ensinar a como usar o jasper, você pode pesquisar a documentação no próprio site da JasperSoft, ou ainda o curso online de Jasper Reports da Caelum.

Após a edição desses arquivos, precisamos agora instruir o Stella-Boleto a utilizar o template customizado no lugar do template default. A classe GeradorDeBoleto e seus derivados possui um construtor que recebe como parâmetro qual o template a ser utlizado, além de um Map para passagem de parâmetros opcionais para o template.

Por exemplo, imagine que seus layouts customizados estão disponíveis na pasta \WEB-INF\jasper. O seguinte codigo pode ser usado para carregar esses layouts:

//Mapa para parâmetros
Map<String, Object> parametros = new HashMap<String, Object>();

//carrega o caminho físico do arquivo
String reportPath = request.getServletContext().getRealPath("/WEB-INF/jasper/boleto-custom.jasper");

//carrega o conteúdo do arquivo em um InputStream
InputStream templateBoleto = new FileInputStream(reportPath);

// passa para o gerador de boleto os dados do template no construtor, 
// junto com o mapa com os parâmetros, além dos dados dos boletos
GeradorDeBoletoHtml new GeradorDeBoletoHTML(templateBoleto,parametros,boleto);

Todo parâmetro passado nesse mapa ficará disponível para ser utilizado dentro do template. Por exemplo, para incluir um logotipo, bastaria criar um parâmetro chamado LOGO no template, que poderia ser passado da seguinte maneira:

parametros.put("LOGO", new FileInputStream("logo.png"));