public string CalculoLinhaDigitavel(string Banco, string Carteira, string Agencia, string Modalidade, string CodigoBeneficiario, string NossoNumero, DateTime vencimento, decimal valor, string campolivre, string Parcela)
        {
            var campo1 = "";
            var linha  = "";

            campo1  = Banco + "9";
            campo1 += Carteira;
            campo1 += LibProdusys.StrZero(Agencia, 4);
            campo1 += LibProdusys.Modulo10(campo1);
            linha   = campo1;
            var campo2 = Modalidade;

            campo2 += CodigoBeneficiario;
            campo2 += NossoNumero.Substring(0, 1);
            TimeSpan d           = vencimento - Convert.ToDateTime("07/10/1997");
            string   fatorvencto = LibProdusys.StrZero(d.Days.ToString(), 4);
            string   vl          = LibProdusys.StrZero(LibProdusys.TC(valor.ToString()), 10);
            string   codbar      = LibProdusys.StrZero(Banco, 3) + "9" + fatorvencto + vl + campolivre;
            string   dv          = LibProdusys.Modulo11(codbar);

            if (dv == "0")
            {
                dv = "1";
            }
            campo2 += codbar.Substring(0, 4) + dv + codbar.Substring(4);
            linha  += campo2;
            var campo3 = "";

            campo3  = CodigoBeneficiario.Substring(1, CodigoBeneficiario.Length);
            campo3 += LibProdusys.StrZero(Parcela, 3);
            campo3 += LibProdusys.Modulo10(campo3);
            linha  += campo3;
            var campo4 = "";

            campo4 = linha.Substring(4, 1);
            linha += campo4;
            var campo5 = "";

            campo5 += linha.Substring(5, 14);
            linha  += campo5;


            return(linha);
        }