public void Boleto_Caixa() { // Exemplo 100% de acordo com a documentação usando os parametros mínimos // https://github.com/impactro/Boleto-ASP.NET/files/44866/ESPCODBARR_SICOB.pdf // Página 8, item 5.1.1 /* Dados usados para cálculo: * 104 Banco ...............................Posição: 01 - 03 * 9 Moeda ...............................Posição: 04 - 04 * 1099(10/10/2000) Fator de Vencimento .................Posição: 06 - 09 * 160,00 Valor ...............................Posição: 10 - 19 * 9001200200 Nosso Número (sem DV) ...............Posição: 20 - 29 * 001287000000012 Código do Cedente no SICOB(sem DV) ..Posição: 30 - 44 */ // Dados do Recebedor CedenteInfo c = new CedenteInfo() { Banco = "104-0", CodCedente = "001287000000012" }; // Dados do Pagador SacadoInfo s = new SacadoInfo(); // Informações do Boleto BoletoInfo b = new BoletoInfo() { DataVencimento = DateTime.Parse("10/10/2000"), ValorDocumento = 160, NossoNumero = "9001200200" // Exemplo do caso especial onde o Dv dá Zero (caso critico) }; // Cria uma instancia do objeto que calcula e monta um boleto Boleto bol = new Boleto(); // Seta as variáveis (parametros) com os dados do recebedor (c), pagador (s), e as informações do boleto (b) bol.MakeBoleto(c, s, b); // Calcula efetivamente o boleto bol.CalculaBoleto(); // Imprime a linha digitável no console e alguns outros dados para conferencia Console.WriteLine("Linha Digitável: " + bol.LinhaDigitavel); Console.WriteLine("Agência/Conta: " + bol.AgenciaConta); Console.WriteLine("Nosso Número: " + bol.NossoNumeroExibicao); Console.WriteLine("Fator Vencimento: " + CobUtil.CalcFatVenc(bol.DataVencimento)); // De acordo com a página 13 deve gerar exatamente a linha abaixo Assert.IsTrue(bol.LinhaDigitavel == "10499.00127 00200.001287 70000.000128 1 10990000016000"); // Outro exemplo qualquer: b.NossoNumero = "9000003225"; bol.MakeBoleto(c, s, b); // atualizo os dados (não é recomendado, mas para simplificar funciona) bol.CalculaBoleto(); // se não chamar esta rotina, virá comos resultados calculados anteriormente Console.WriteLine("Exemplo Livre: Nosso Número: " + bol.NossoNumeroExibicao); Assert.IsTrue(bol.NossoNumeroExibicao == "9000003225-0"); // no caso o sistema sempre preenche com os digitos zeros a esquerda // Salva a imagem do boleto para conferencia visual bol.Save("boleto.png"); }
public IActionResult Boleto() { // Definição dos dados do cedente var Cedente = new CedenteInfo() { Cedente = "Teste de Cedente", CNPJ = "12.345.678/0000-12", Endereco = "endereço do recebedor", Banco = "237", Agencia = "0646", Conta = "9105-8", Carteira = "6" }; // Definição dos dados do sacado var Sacado = new SacadoInfo() { Sacado = "Fabio Ferreira (Teste)", Documento = "123.456.789-99", Endereco = "Av. Paulista, 1234", Cidade = "São Paulo", Bairro = "Centro", Cep = "12345-123", UF = "SP" }; // Definição das Variáveis do boleto var Boleto = new BoletoInfo() { NumeroDocumento = "00046356", NossoNumero = "00046356", ParcelaNumero = 1, ParcelaTotal = 3, Quantidade = 4, ValorUnitario = 34.55, ValorDocumento = 3070.14, DataDocumento = DateTime.Now, DataVencimento = DateTime.Parse("30/07/2017"), Demonstrativo = "Demostrativo para o cliente", Instrucoes = "Todas as informações deste bloqueto são de exclusiva responsabilidade do cedente" }; // monta o boleto com os dados específicos nas classes var blt = new Boleto(); blt.MakeBoleto(Cedente, Sacado, Boleto); // Armazena e inicializa variáveis internas blt.CalculaBoleto(); // Calcula a linha digitável e código de barras ViewBag.Boleto = blt; // Coloca na viewBag a instancia do boleto calculado para ser meschado no HTML return(View()); }
/// <summary> /// Configura o boleto e calcula o código de barras e linha digitavel com base nas informações passadas /// </summary> /// <param name="Cedente">São as dados de que Emite o Boleto (Quem irá receber)</param> /// <param name="Sacado">São os dados do pagador do Boleto (Quem irá pagar)</param> /// <param name="Boleto">São os dados da caobrança em si: Valores, Datas, Descrições e Informações</param> public void MakeBoleto(CedenteInfo Cedente, SacadoInfo Sacado, BoletoInfo Boleto) { if (MontaCampoLivre != null) { blt.onMontaCampoLivre += MontaCampoLivre; } if (blt != null) { blt.MakeBoleto(Cedente, Sacado, Boleto); } blt.CalculaBoleto(); }
private void frmCustromizado_Load(object sender, EventArgs e) { // Definição dos dados do cedente CedenteInfo Cedente = new CedenteInfo(); Cedente.Cedente = "Impactro Informática (teste)"; Cedente.Banco = "001"; Cedente.Agencia = "999-7"; Cedente.Conta = "999999-7"; Cedente.Carteira = "18"; Cedente.Modalidade = "19"; Cedente.Convenio = "123456"; // ATENÇÃO: Alguns Bancos usam um código de convenio para remapear a conta do clientes Cedente.CodCedente = "123456"; // outros bancos chama isto de Codigo do Cedente ou Código do Cliente // outros usam os 2 campos para controles distintos! // Veja com atenção qual é o seu caso e qual destas variáveis deve ser usadas! // Olhe sempre os exemplos em ASP.Net se tiver dúvidas, pois lá há um exemplo para cada banco // Definição dos dados do sacado SacadoInfo Sacado = new SacadoInfo(); Sacado.Sacado = "Fabio Ferreira (Teste)"; Sacado.Documento = "123.456.789-99"; Sacado.Endereco = "Av. Paulista, 1234"; Sacado.Cidade = "São Paulo"; Sacado.Bairro = "Centro"; Sacado.Cep = "12345-123"; Sacado.UF = "SP"; Sacado.Avalista = "Nome Avalista / Documento"; // Definição das Variáveis do boleto BoletoInfo Boleto = new BoletoInfo(); Boleto.NossoNumero = "12345"; Boleto.NumeroDocumento = "12345"; Boleto.ValorDocumento = 160.0; Boleto.DataDocumento = DateTime.Now; Boleto.DataVencimento = DateTime.Now; Boleto.Instrucoes = "Todas as informações deste bloqueto são de exclusiva responsabilidade do cedente"; // Cria um objeto que calcula as informações do boleto Boleto blt = new Boleto(); blt.MakeBoleto(Cedente, Sacado, Boleto); // antes de começar a pedir as informações para o objeto, // é nescessário pedir que sejam calculado os dados (como se fosse um DataBind) blt.CalculaBoleto(); // Coloca no TextBox o valor da linha digitável lblIPTE.Text = blt.LinhaDigitavel; // O nosso numero exibição é o numero EFETIVAMENTE que deve ser exibido // em vários casos os bancos exeigem formatação especial para a exibição // deste campo e também o calculo de digitos verificadores, assim nesta // variável já existe todas estas exigencias prontas lblNossoNumero.Text = blt.NossoNumeroExibicao; // Não é nescessário formatar com {0:C} pois a 'Especie' (moeda) geralmente // é indicada em um campo a parte lblValor.Text = string.Format("{0:#,###,##0.00}", blt.ValorDocumento); // Formata a data sempre exibindo 2 digitos para dia e mes, e 4 para ano lblVencimento.Text = string.Format("{0:dd/MM/yyyy}", blt.DataVencimento); // Obtem a imagem do código de barras picCodBaras.Image = CobUtil.BarCodeImage(blt.CodigoBarras); // A classe UTIL, contem as rotinas de geração de codigo de barras, // pois o codigo de barras, não é usado somente em boletos, mas em diversas aplicações // desta forma é possivel gerar etiquetas de produtos, identificações de usuário, etc... // apenas coloca o nome do avalista na tela - opcional lblAvalista.Text = "Avalista: " + Sacado.Avalista; }
// 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;'/>")); } } }
public void Boleto_Banestes() { // Ainda de acordo com o exemplo em: https://github.com/impactro/Boleto-Test/wiki/Criando-Layouts/_edit // Dados do Pagador SacadoInfo s = new SacadoInfo() { Sacado = "Fabio Ferreira" }; // Informações do Boleto BoletoInfo b = new BoletoInfo() { DataVencimento = DateTime.Parse("30/07/2000"), ValorDocumento = 75, NossoNumero = "178" }; // Cria uma instancia do objeto que calcula e monta um boleto Boleto bol = new Boleto(); // Seta as variáveis (parametros) com os dados do recebedor (c), pagador (s), e as informações do boleto (b) bol.MakeBoleto(Cedente, s, b); // Calcula efetivamente o boleto bol.CalculaBoleto(); // Imprime a linha digitável no console e alguns outros dados para conferencia Console.WriteLine("Linha Digitável: " + bol.LinhaDigitavel); Console.WriteLine("Agência/Conta: " + bol.AgenciaConta); Console.WriteLine("Nosso Número: " + bol.NossoNumeroExibicao); Console.WriteLine("Fator Vencimento: " + CobUtil.CalcFatVenc(bol.DataVencimento)); // De acordo com a página 13 deve gerar exatamente a linha abaixo Assert.IsTrue(bol.LinhaDigitavel == "02190.00007 17800.006573 33154.021415 7 10270000007500"); // Página 38 da documentação // 02190.00007 17800.006573 33154.021415 3 10270000007500 // O exemplo está com o digito errado! // Salva a imagem do boleto para conferencia visual //bol.Save("boleto.png"); // Baseado no segundo exemplo da página 34 (só vou especificar o que é realmente necessário) Console.WriteLine(); bol = new Boleto(); // reseta tudo! CedenteInfo c = new CedenteInfo() { Banco = "021-3", CodCedente = "7730070", Modalidade = "4" }; // E reaproveiro a instancia (Alterando) b.DataVencimento = DateTime.Parse("09/12/2000"); b.ValorDocumento = 131.50; b.NossoNumero = "10297"; bol.MakeBoleto(c, s, b); // Calcula efetivamente o boleto bol.CalculaBoleto(); // Imprime a linha digitável no console e alguns outros dados para conferencia Console.WriteLine("Linha Digitável: " + bol.LinhaDigitavel); Console.WriteLine("Agência/Conta: " + bol.AgenciaConta); Console.WriteLine("Nosso Número: " + bol.NossoNumeroExibicao); Console.WriteLine("Fator Vencimento: " + CobUtil.CalcFatVenc(bol.DataVencimento)); // De acordo com a página 13 deve gerar exatamente a linha abaixo Assert.IsTrue(bol.LinhaDigitavel == "02190.00106 29700.007734 00704.021823 3 11590000013150"); // Note que o digito verificador é 3... acho que houve confusão na digitação da documentação // E este número retorna exatamente o informado na página 32: 021.9.3.1159.0000013150-0001029700007730070402182 }
public IActionResult CaixaHomologa() { // Exemplo original em https://github.com/impactro/Boleto-ASP.NET/blob/master/BoletoNet/HomologaCaixaCS.aspx.cs adaptado minimamente para .net core // Aqui também aproveito para mostrar como colocar varios boletos na mesma página // Definição dos dados do cedente CedenteInfo Cedente = new CedenteInfo(); Cedente.Cedente = "Exemplo de empresa cedente"; Cedente.Endereco = "rua Qualquer no Bairro da Cidade"; Cedente.CNPJ = "12.345.678/00001-12"; Cedente.Banco = "104"; Cedente.Agencia = "4353"; Cedente.Conta = "00000939-9"; Cedente.Carteira = "1"; // 1-Registrada ou 2-Sem registro Cedente.CodCedente = "658857"; Cedente.Convenio = "1234"; // CNPJ do PV da conta do cliente = 00.360.305/4353-48 (usado em alguns casos) Cedente.Informacoes = "SAC CAIXA: 0800 726 0101 (informações, reclamações, sugestões e elogios)<br/>" + "Para pessoas com deficiência auditiva ou de fala: 0800 726 2492<br/>" + "Ouvidoria: 0800 725 7474 (reclamações não solucionadas e denúncias)<br/>" + "<a href='http://caixa.gov.br' target='_blank'>caixa.gov.br</a>"; BoletoTextos.LocalPagamento = "PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE"; // Definição dos dados do sacado SacadoInfo Sacado = new SacadoInfo(); Sacado.Sacado = "Fabio Ferreira (Teste para homologação)"; Sacado.Documento = "123.456.789-99"; Sacado.Endereco = "Av. Paulista, 1234"; Sacado.Cidade = "São Paulo"; Sacado.Bairro = "Centro"; Sacado.Cep = "12345-123"; Sacado.UF = "SP"; Sacado.Avalista = "CNPJ: 123.456.789/00001-23"; // Para aprovar a homologação junto a caixa é necessário apresentar 10 boletos com os 10 digitos de controle da linha digitável diferentes // E mais outros 10 com o digito de controle do código de barras // Assim a ideia é criar 2 listas para ir memorizando os boletos já validos e deixa-los entrar em tela List <int> DAC1 = new List <int>(); List <int> DAC2 = new List <int>(); List <Boleto> boletoList = new List <Impactro.Cobranca.Boleto>(); for (int nBoleto = 1001; nBoleto < 1100; nBoleto++) { // Definição dos dados do boleto de forma sequencial BoletoInfo Boleto = new BoletoInfo() { NumeroDocumento = nBoleto.ToString(), NossoNumero = nBoleto.ToString(), ValorDocumento = 123.45, DataVencimento = DateTime.Now, DataDocumento = DateTime.Now, }; // Componente HTML do boleto que poderá ser ou não colocado em tela var blt = new Boleto(); blt.CalculaBoleto(); // Calcula a linha digitável e código de barras // Junta as informações para fazer o calculo blt.MakeBoleto(Cedente, Sacado, Boleto); // A instancia 'blt' é apenas un Webcontrol que renderiza o boleto HTML, tudo fica dentro da propriedade 'Boleto' blt.CalculaBoleto(); // 10491.23456 60000.200042 00000.000844 4 67410000012345 // 012345678901234567890123456789012345678901234567890123 // 000000000111111111122222222223333333333444444444455555 int D1 = int.Parse(blt.LinhaDigitavel.Substring(38, 1)); int D2 = int.Parse(blt.LinhaDigitavel.Substring(35, 1)); // De acordo com o banco: // Todos os Dígitos Verificadores Geral do Código de Barras possíveis(de 1 a 9) ou seja, campo 4 da Representação Numérica // Todas os Dígitos Verificadores do Campo Livre possíveis(de 0 a 9), 10ª posição do campo 3 da Representação Numérica bool lUsar = false; if (!DAC1.Contains(D1)) { lUsar = true; DAC1.Add(D1); } if (!DAC2.Contains(D2)) { lUsar = true; DAC2.Add(D2); } if (lUsar) { boletoList.Add(blt); } // Quando todas as possibilidades concluidas em até 100 boletos, já pode terminar... if (DAC1.Count == 9 && DAC2.Count == 10) { break; // o Modulo 11 padrão não tem o digito Zero, mas o especial para calculo do nosso numero tem } } ViewBag.BoletoList = boletoList; return(View()); }
// 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;'/>")); } }
private void SetValores() { // Exemplo abaixo baseado no boleto customizado... // Definição dos dados do cedente CedenteInfo Cedente = new CedenteInfo(); Cedente.Cedente = "Impactro Informática (teste)"; Cedente.Banco = "001"; Cedente.Agencia = "999-7"; Cedente.Conta = "999999-7"; Cedente.Carteira = "18"; Cedente.Modalidade = "19"; Cedente.Convenio = "123456"; // ATENÇÃO: Alguns Bancos usam um código de convenio para remapear a conta do clientes Cedente.CodCedente = "123456"; // outros bancos chama isto de Codigo do Cedente ou Código do Cliente // outros usam os 2 campos para controles distintos! // Veja com atenção qual é o seu caso e qual destas variáveis deve ser usadas! // Olhe sempre os exemplos em ASP.Net se tiver dúvidas, pois lá há um exemplo para cada banco // Definição dos dados do sacado SacadoInfo Sacado = new SacadoInfo(); Sacado.Sacado = "Fabio Ferreira (Teste)"; Sacado.Documento = "123.456.789-99"; Sacado.Endereco = "Av. Paulista, 1234"; Sacado.Cidade = "São Paulo"; Sacado.Bairro = "Centro"; Sacado.Cep = "12345-123"; Sacado.UF = "SP"; Sacado.Avalista = "Impactro Informática - CNPJ: 123.456.789/00001-23"; // Definição das Variáveis do boleto BoletoInfo Boleto = new BoletoInfo(); Boleto.NossoNumero = NossoNumero.ToString(); Boleto.NumeroDocumento = NossoNumero.ToString(); Boleto.ValorDocumento = 160.0; Boleto.DataDocumento = DateTime.Now; Boleto.DataVencimento = DateTime.Now; Boleto.Instrucoes = "Todas as informações deste bloqueto são de exclusiva responsabilidade do cedente"; // incrementa o nosso numero para outro boleto NossoNumero++; // Cria um objeto que calcula as informações do boleto Boleto blt = new Boleto(); blt.MakeBoleto(Cedente, Sacado, Boleto); // antes de começar a pedir as informações para o objeto, // é nescessário pedir que sejam calculado os dados (como se fosse um DataBind) blt.CalculaBoleto(); Valores = new SortedList<ValoresCampos, strTextos>(); // parte 1,2,3 Valores.Add(ValoresCampos.ParcelaPlano, new strTextos(10, 15, 0, 0, 243, 15, " ", false, StringAlignment.Center)); Valores.Add(ValoresCampos.Vencimento, new strTextos(45, 15, 223, 15, 275, 15, string.Format("{0:dd/MM/yyyy}", blt.DataVencimento), true, StringAlignment.Far)); Valores.Add(ValoresCampos.AgenciaCedente, new strTextos(45, 21, 223, 21, 275, 21, blt.AgenciaConta, false, StringAlignment.Far)); Valores.Add(ValoresCampos.Especie, new strTextos(5, 28, 108, 34, 238, 28, "R$", false, StringAlignment.Center)); Valores.Add(ValoresCampos.Quantidade, new strTextos(45, 28, 138, 34, 275, 28, (blt.Quantidade == 0) ? "" : blt.Quantidade.ToString(), false, StringAlignment.Far)); Valores.Add(ValoresCampos.ValorDocumento, new strTextos(45, 34, 223, 34, 275, 34, string.Format("{0:#,###,##0.00}", blt.ValorDocumento), true, StringAlignment.Far)); Valores.Add(ValoresCampos.DescontoAbatimento, new strTextos(45, 41, 223, 41, 275, 41, " ", false, StringAlignment.Far)); Valores.Add(ValoresCampos.MoraMulta, new strTextos(45, 53, 223, 53, 275, 53, " ", false, StringAlignment.Far)); Valores.Add(ValoresCampos.ValorCobrado, new strTextos(45, 65, 223, 65, 275, 65, " ", false, StringAlignment.Far)); Valores.Add(ValoresCampos.NossoNumero, new strTextos(45, 71, 223, 28, 275, 71, blt.NossoNumeroExibicao, false, StringAlignment.Far)); Valores.Add(ValoresCampos.NumeroDocumento, new strTextos(20, 79, 100, 28, 255, 79, blt.NumeroDocumento, false, StringAlignment.Center)); Valores.Add(ValoresCampos.SacadoResumido, new strTextos(2, 85, 0, 0, 235, 85, blt.Sacado + "\n" + blt.SacadoDocumento, false, StringAlignment.Near)); Valores.Add(ValoresCampos.Sacado, new strTextos(0, 0, 70, 69, 0, 0, blt.Sacado + " - " + blt.SacadoDocumento + "\n" + blt.SacadoEndereco + "\n" + blt.Cidade + " - " + blt.Bairro + " " + blt.UF + " CEP: " + blt.Cep, false, StringAlignment.Near)); Valores.Add(ValoresCampos.Avalista, new strTextos(0, 0, 70, 79, 0, 0, blt.Avalista, false, StringAlignment.Near)); Valores.Add(ValoresCampos.LocalPagamento, new strTextos(0, 0, 59, 15, 0, 0, "ATÉ O VENCIMENTO PAGUAVEL EM QUALQUER BANCO", false, StringAlignment.Near)); Valores.Add(ValoresCampos.Cedente, new strTextos(0, 0, 59, 21, 0, 0, blt.Cedente, false, StringAlignment.Near)); Valores.Add(ValoresCampos.DataDocumento, new strTextos(0, 0, 72, 28, 0, 0, string.Format("{0:dd/MM/yyyy}", blt.DataDocumento), false, StringAlignment.Center)); Valores.Add(ValoresCampos.EspecieDoc, new strTextos(0, 0, 126, 28, 0, 0, "RC", false, StringAlignment.Center)); Valores.Add(ValoresCampos.Aceite, new strTextos(0, 0, 146, 28, 0, 0, "N", false, StringAlignment.Center)); Valores.Add(ValoresCampos.DataProcessamento, new strTextos(0, 0, 170, 28, 0, 0, string.Format("{0:dd/MM/yyyy}", blt.DataProcessamento), false, StringAlignment.Center)); Valores.Add(ValoresCampos.UsodoBanco, new strTextos(0, 0, 70, 34, 0, 0, " ", false, StringAlignment.Center)); Valores.Add(ValoresCampos.Carteira, new strTextos(0, 0, 94, 34, 0, 0, blt.Carteira, false, StringAlignment.Center)); Valores.Add(ValoresCampos.Valor, new strTextos(0, 0, 168, 34, 0, 0, (blt.ValorDocumento == 0) ? "" : string.Format("{0:0.00}", blt.ValorDocumento), false, StringAlignment.Center)); Valores.Add(ValoresCampos.Instrucoes, new strTextos(0, 0, 62, 45, 0, 0, blt.Instrucoes, false, StringAlignment.Near)); // Campos Especiais (Banco e IPTE) Valores.Add(ValoresCampos.Banco, new strTextos(0, 0, 98, 7, 0, 0, blt.BancoCodigo, true, StringAlignment.Center)); Valores.Add(ValoresCampos.IPTE, new strTextos(0, 0, 223, 6, 0, 0, blt.LinhaDigitavel, true, StringAlignment.Far)); imgBanco = (Image)CobUtil.ResLoadImage(String.Format("{0:000}.gif", blt.BancoNumero)); imgCodBar = CobUtil.BarCodeImage(blt.CodigoBarras); }