<%@ page import="com.boletobancario.boleto.BoletoFactory" %><%@
    page import="com.boletobancario.boleto.pdf.BoletoPDFFormatter" %><%@
    page import="com.boletobancario.boleto.mail.SmartMailSender" %><%@
    page import="org.apache.commons.lang.StringUtils" %><%@
    page import="java.util.Calendar" %><%@
    page import="java.io.ByteArrayOutputStream" %><%
    
    // Exemplo de geração e envio por e-mail de um boleto personalizado.
    // O envio do boleto por e-mail é uma ótima alternativa em diversas situações.
    
    BoletoFactory factory = new BoletoFactory();
    
    factory.setBanco( BoletoFactory.BRADESCO );
    factory.setAgencia( "123" );
    factory.setCedente( "4567" );
    factory.setCarteira( "06" );
    factory.setNossoNumero( "378" );
    factory.setValor( "54,00" );
    factory.setVencimento( Calendar.getInstance() );
    
    factory.setNomeCedente( "Empresa Demonstração LTDA." );
    factory.setLocalPagamento( "Pagável em qualquer agência bancária até o vencimento." );
    
    factory.setNomeSac( "Beltrano de Tal" );
    factory.setEnderecoSac( "R. Silas Salazar, 768 - 8º Andar" );
    factory.setCepSac( "12345678" );
    factory.setCidadeSac( "São Paulo" );
    factory.setEstadoSac( "SP" );
    
    factory.setMensagem( 1, "Após o vencimento, entre em contato com nossa central de atendimento." );
    factory.setMensagem( 9, "[b]Sr. Caixa: Boleto Demonstrativo. Não receber.[/b] Gerado por: [b]www.boletobancario.com[/b]" );
    factory.setAceite( "Não" );
    
    
    // O código abaixo faz a personalização do boleto. Passo opcional.
    
    String custom = "imageC63:cabecalho.png|nl:1|";
    custom += "textBC20: |nl:1|";
    custom += "textBC16:Fatura mensal de serviços|nl:3|";
    custom += "textBL12:Descritivo dos serviços|nl:2|";
    custom += "tab:2|textNL11:* Quantidade contratada: 100 - |textBL11: R$ 20,00|nl:1|";
    custom += "tab:2|textNL11:* Quantidade excedente: 150 - |textBL11: R$ 40,00|nl:2|";
    custom += "tab:2|textNL11:* Desconto fidelidade: 14 Meses - |textBL11: 10% - (R$ 6,00)|nl:3|";
    custom += "textNL12:Total desta fatura:|textBL12: R$ {valor}|nl:4|";
    custom += "textNL10:Prezado cliente, verificamos que seu consumo excedeu em mais de 20% o plano contratado.|nl:1|"
            + "textNL10:Você pode alterar seu plano na área restrita de nosso site: |textBL10:www.boletobancario.com";
    
    factory.setCustomContent( custom );
    
    
    // Código para envio do boleto por e-mail.
    
    SmartMailSender sender = new SmartMailSender();
    sender.setEmailFrom( "Boleto Bancario . com <noreply-demo@boletobancario.com>" );
    sender.setSmtpHost( "[SEU SERVIDOR SMTP]" ); // endereço do servidor de e-mail.
    sender.setSmtpUser( "[USUARIO DO SEU EMAIL]" ); // usuário no servidor de e-mail.
    sender.setSmtpPassword( "[SENHA DO SEU EMAIL]" ); // senha.
    
    String subject = "[Boleto Bancario . com] Boleto Demonstrativo";
    
    String body = "Prezado cliente,\n\n";
    body += "Segue com esta mensagem o arquivo PDF com seu boleto demonstrativo.\n";
    body += "É dessa forma, com velocidade e segurança, que seus clientes receberão os boletos caso sua empresa utilize nossas soluções.\n";
    body += "Para conhecer melhor nossos produtos, visite o endereço: http://www.boletobancario.com/home/produtos/\n\n";
    body += "Atenciosamente,\n\n";
    body += "Equipe Boleto Bancario . com\n";
    body += "www.boletobancario.com\n\n";
    body += "R. Des. Ermelino de Leão, 35\n";
    body += "3º Andar - Centro - 80410-230 - Curitiba - PR";
    
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    new BoletoPDFFormatter(factory.createBoleto(), BoletoPDFFormatter.LAYOUT_NORMAL, bos ).format();
    
    sender.sendMail( email, subject, body, SmartMailSender.createAttachment( "boleto.pdf", bos.toByteArray() ) );
%>