Esempio n. 1
0
    // Neste primeiro exemplo o boleto será inserido como imagem embutida no HTML em base64
    protected void Page_Init(object sender, EventArgs e)
    {
        // Definição dos dados do cedente, que será comum para todos os boletos
        CedenteInfo Cedente = new CedenteInfo();

        Cedente.Cedente    = "outro cedente!";
        Cedente.Banco      = "237";
        Cedente.Agencia    = "1234-5";
        Cedente.Conta      = "123456-7";
        Cedente.Carteira   = "06";
        Cedente.Modalidade = "11";

        // Cria uma tabela em memoria
        DataTable tbDados = new DataTable();

        // Estrutura da tabela
        tbDados.Columns.Add("Nome", typeof(string));
        tbDados.Columns.Add("Vencimento", typeof(DateTime));
        tbDados.Columns.Add("Valor", typeof(double));
        tbDados.Columns.Add("NossoNumero", typeof(int));

        // Insere os dados
        tbDados.Rows.Add("Fábio", new DateTime(2015, 12, 30), 123.45, 345678);
        tbDados.Rows.Add("Érika", new DateTime(2015, 7, 25), 60, 12332);
        tbDados.Rows.Add("Milena", new DateTime(2015, 10, 20), 10.30, 234);
        tbDados.Rows.Add("Cecília", new DateTime(2015, 3, 4), 20.53, 456445);
        tbDados.Rows.Add("Roberto", new DateTime(2015, 6, 5), 32.78, 47319);
        tbDados.Rows.Add("Marcelo", DateTime.MinValue, 20320.23, 18445);
        tbDados.Rows.Add("Ricardo", DateTime.MinValue, 97023.51, 2465445);
        tbDados.Rows.Add("Maria", new DateTime(2016, 9, 12), 7890.23, 61756);
        tbDados.Rows.Add("Samara", new DateTime(2015, 8, 12), 78.1, 656);
        tbDados.Rows.Add("Marcio", new DateTime(2015, 2, 10), 790.3, 5672);

        int nBoleto = 0;

        foreach (DataRow row in tbDados.Rows)
        {
            // Instancia do 'Boleto', não o 'BoletoWeb', pois a ideia é renderizar imagem
            // O BoletoWeb usa a classe 'Boleto' para fazer todos os calculos, e depois desenha em html o boleto
            Boleto blt = new Boleto();
            blt.Carne = true; // Formato de Carne, neste exemplo será colocardo 3 boletos por página

            // Definição dos dados do sacado
            SacadoInfo Sacado = new SacadoInfo();
            Sacado.Sacado = (string)row["Nome"];

            // Definição das Variáveis do boleto
            BoletoInfo Boleto = new BoletoInfo();
            Boleto.DataVencimento  = (DateTime)row["Vencimento"];
            Boleto.ValorDocumento  = (double)row["Valor"];
            Boleto.NossoNumero     = row["NossoNumero"].ToString();
            Boleto.NumeroDocumento = Boleto.NossoNumero;

            // Calcula os dados do boleto
            blt.MakeBoleto(Cedente, Sacado, Boleto);

            // Obtem a imagem do boleto
            Bitmap img = blt.ImageBoleto();

            // Adiciona a imagem do boleto em base64 no HTML
            form1.Controls.Add(new LiteralControl(CobUtil.ToBase64ImageTag(img, ImageFormat.Png)));

            // incrementa o contador de boletos
            nBoleto++;
            if (nBoleto % 3 == 0) // Mas aplicar muito zoom pode dar problema na leitura do código de barras
            // somente nos boletos pares a iniciar de 2 força uma quebra de linha
            {
                form1.Controls.Add(new LiteralControl("<div style='page-break-after: always'><br/></div>"));
            }
            else //  if (nBoleto<tbDados.Rows.Count) // caso não queira imprimir a ultima imagem de tesoura
                 // nos boletos impares adiciona a imagem de recorte, ou um HR
                 // form1.Controls.Add(new LiteralControl("<img src='imagens/corte.gif' style='margin: 5px 0 5px 0;'/>"));
            {
                form1.Controls.Add(new LiteralControl("<hr size='1' style='color: gray; margin: 5px 0 5px 0;'/>"));
            }
        }
    }
    // Neste primeiro exemplo o boleto será inserido como imagem embutida no HTML em base64
    protected void Page_Init(object sender, EventArgs e)
    {
        // Definição dos dados do cedente, que será comum para todos os boletos
        CedenteInfo Cedente = new CedenteInfo();
        Cedente.Cedente = "outro cedente!";
        Cedente.Banco = "237";
        Cedente.Agencia = "1234-5";
        Cedente.Conta = "123456-7";
        Cedente.Carteira = "06";
        Cedente.Modalidade = "11";

        // Cria uma tabela em memoria
        DataTable tbDados = new DataTable(); 

        // Estrutura da tabela
        tbDados.Columns.Add("Nome", typeof(string));
        tbDados.Columns.Add("Vencimento", typeof(DateTime));
        tbDados.Columns.Add("Valor", typeof(double));
        tbDados.Columns.Add("NossoNumero", typeof(int));

        // Insere os dados
        tbDados.Rows.Add("Fábio", new DateTime(2015, 12, 30), 123.45, 345678);
        tbDados.Rows.Add("Érika", new DateTime(2015, 7, 25), 60, 12332);
        tbDados.Rows.Add("Milena", new DateTime(2015, 10, 20), 10.30, 234);
        tbDados.Rows.Add("Cecília", new DateTime(2015, 3, 4), 20.53, 456445);
        tbDados.Rows.Add("Roberto", new DateTime(2015, 6, 5), 32.78, 47319);
        tbDados.Rows.Add("Marcelo", DateTime.MinValue, 20320.23, 18445);
        tbDados.Rows.Add("Ricardo", DateTime.MinValue, 97023.51, 2465445);
        tbDados.Rows.Add("Maria", new DateTime(2016, 9, 12), 7890.23, 61756);
        tbDados.Rows.Add("Samara", new DateTime(2015, 8, 12), 78.1, 656);
        tbDados.Rows.Add("Marcio", new DateTime(2015, 2, 10), 790.3, 5672);

        int nBoleto = 0;
        foreach (DataRow row in tbDados.Rows)
        {
            // Instancia do 'Boleto', não o 'BoletoWeb', pois a ideia é renderizar imagem
            // O BoletoWeb usa a classe 'Boleto' para fazer todos os calculos, e depois desenha em html o boleto
            Boleto blt = new Boleto();
            blt.Carne = true; // Formato de Carne, neste exemplo será colocardo 3 boletos por página

            // Definição dos dados do sacado
            SacadoInfo Sacado = new SacadoInfo();
            Sacado.Sacado = (string)row["Nome"];

            // Definição das Variáveis do boleto
            BoletoInfo Boleto = new BoletoInfo();
            Boleto.DataVencimento = (DateTime)row["Vencimento"];
            Boleto.ValorDocumento = (double)row["Valor"];
            Boleto.NossoNumero = row["NossoNumero"].ToString();
            Boleto.NumeroDocumento = Boleto.NossoNumero;

            // Calcula os dados do boleto
            blt.MakeBoleto(Cedente, Sacado, Boleto);
            
            // Obtem a imagem do boleto
            Bitmap img = blt.ImageBoleto();
            
            // Adiciona a imagem do boleto em base64 no HTML
            form1.Controls.Add(new LiteralControl(CobUtil.ToBase64ImageTag(img, ImageFormat.Png)));

            // incrementa o contador de boletos
            nBoleto++;
            if (nBoleto % 3 == 0) // Mas aplicar muito zoom pode dar problema na leitura do código de barras
                // somente nos boletos pares a iniciar de 2 força uma quebra de linha
                form1.Controls.Add(new LiteralControl("<div style='page-break-after: always'><br/></div>"));
            else //  if (nBoleto<tbDados.Rows.Count) // caso não queira imprimir a ultima imagem de tesoura
                // nos boletos impares adiciona a imagem de recorte, ou um HR
                // form1.Controls.Add(new LiteralControl("<img src='imagens/corte.gif' style='margin: 5px 0 5px 0;'/>"));
                form1.Controls.Add(new LiteralControl("<hr size='1' style='color: gray; margin: 5px 0 5px 0;'/>"));
        }
    }