/// <summary> /// Serializa os dados do cheque. /// </summary> /// <param name="writer">TextWriter.</param> public void Serializar(System.IO.TextWriter writer) { var retorno = new StringBuilder(); retorno.Append(Banco); retorno.Append(Agencia.PadLeft(5, '0')); retorno.Append(Conta.Replace("-", string.Empty).PadLeft(10, '0')); retorno.Append(Num.ToString().PadLeft(6, '0')); retorno.Append(Valor.ToString().Replace(".", string.Empty).Replace(",", string.Empty).PadLeft(13, '0')); retorno.Append(DataCad.ToShortDateString()); retorno.Append(CpfCnpj.LimpaCpfCnpj().PadLeft(14, '0')); retorno.Append(UF); retorno.Append(DataVenc.GetValueOrDefault().ToShortDateString()); retorno.Append(DataVencUtil.GetValueOrDefault().ToShortDateString()); retorno.Append(DataVencOriginal.GetValueOrDefault().ToShortDateString()); retorno.Append(DataVencUtilOriginal.GetValueOrDefault().ToShortDateString()); retorno.Append(CodCompensacao); retorno.Append(DigitoVerificador2); retorno.Append(Tipificacao); retorno.Append(DigitoVerificador1); retorno.Append(DigitoVerificador3); retorno.Append(PracaCompensacao); retorno.Append(string.Empty.PadLeft(33, ' ')); if (Emitente.Count() > 30) { retorno.Append(Emitente.Substring(0, 30)); } else { retorno.Append(Emitente.PadLeft(30, ' ')); } retorno.Append(string.Empty.PadLeft(12, ' ')); retorno.Append(Fatura.ToString().PadLeft(14, '0')); retorno.Append(ValorFatura.ToString().Replace(".", string.Empty).Replace(",", string.Empty).PadLeft(15, '0')); retorno.Append(ChaveDanfe); retorno.Append(SerieFatura); writer.WriteLine(retorno); }