diff --git a/BoletoNetCore.QuestPdf/logos/085.bmp b/BoletoNetCore.QuestPdf/logos/085.bmp
index 2db06485..ad6341b3 100644
Binary files a/BoletoNetCore.QuestPdf/logos/085.bmp and b/BoletoNetCore.QuestPdf/logos/085.bmp differ
diff --git a/BoletoNetCore/BoletoImpressao/BoletoBancario.cs b/BoletoNetCore/BoletoImpressao/BoletoBancario.cs
index d8808df8..829f6621 100644
--- a/BoletoNetCore/BoletoImpressao/BoletoBancario.cs
+++ b/BoletoNetCore/BoletoImpressao/BoletoBancario.cs
@@ -16,13 +16,15 @@ namespace BoletoNetCore
[Serializable()]
public class BoletoBancario
{
- String _vLocalLogoBeneficiario = String.Empty;
-
#region Variaveis
- private string _instrucoesHtml = string.Empty;
- private bool _mostrarCodigoCarteira = false;
- private bool _formatoCarne = false;
+ string _vLocalLogoBeneficiario = string.Empty;
+
+ private readonly CultureInfo _culture = CultureInfo.GetCultureInfo("pt-BR");
+
+ private bool _formatoCarne;
+ private bool _mostrarCodigoCarteira;
+
#endregion Variaveis
#region Propriedades
@@ -32,8 +34,8 @@ public class BoletoBancario
///
public bool MostrarCodigoCarteira
{
- get { return _mostrarCodigoCarteira; }
- set { _mostrarCodigoCarteira = value; }
+ get => _mostrarCodigoCarteira;
+ set => _mostrarCodigoCarteira = value;
}
public bool ExibirDemonstrativo { get; set; }
@@ -43,8 +45,8 @@ public bool MostrarCodigoCarteira
///
public bool FormatoCarne
{
- get { return _formatoCarne; }
- set { _formatoCarne = value; }
+ get => _formatoCarne;
+ set => _formatoCarne = value;
}
public Boleto Boleto { get; set; }
@@ -52,6 +54,7 @@ public bool FormatoCarne
public IBanco Banco { get; set; }
#region Propriedades
+
public bool MostrarComprovanteEntregaLivre { get; set; }
public bool MostrarComprovanteEntrega { get; set; }
@@ -63,17 +66,17 @@ public bool FormatoCarne
public bool OcultarReciboPagador { get; set; }
public bool GerarArquivoRemessa { get; set; }
+
///
/// Mostra o termo "Contra Apresentação" na data de vencimento do boleto
///
public bool MostrarContraApresentacaoNaDataVencimento { get; set; }
public bool MostrarEnderecoBeneficiario { get; set; }
- #endregion Propriedades
#endregion Propriedades
-
+ #endregion Propriedades
#region Override
@@ -100,18 +103,10 @@ private string GetCodBarraCode(string code)
return Convert.ToBase64String(new BarCode2of5i(code, 1, 50, code.Length).ToByte());
}
- protected string Render()
- {
- var urlImagemLogo = "data:image/jpg;base64," + GetResourceImage("BoletoNetCore.Imagens." + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg");
- var urlImagemBarra = "data:image/jpg;base64," + GetResourceImage("BoletoNetCore.Imagens.barra.gif");
-
- //Atribui os valores ao html do boleto bancário
- return MontaHtml(urlImagemLogo, urlImagemBarra, "
");
- }
-
#endregion Override
#region Html
+
public string GeraHtmlInstrucoes()
{
try
@@ -137,13 +132,19 @@ public string GeraHtmlInstrucoes()
private string GeraHtmlPix(string pixStr, int tamanhoImagem = 200)
{
- var html = new StringBuilder();
-
- html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.Pix.html"));
-
- return html.ToString()
+ var html = GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.Pix.html")
.Replace("@PIXSTRING", pixStr)
.Replace("@PIXIMAGEMTAMANHO", tamanhoImagem.ToString());
+
+ return html;
+ }
+
+ private string GeraHtmlPixInstrucoes(string pixStr)
+ {
+ var html = GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.PixInstrucoes.html")
+ .Replace("@PIXINSTRUCOESSTRING", pixStr);
+
+ return html;
}
private string GeraHtmlCarne(string telefone, string htmlBoleto)
@@ -170,6 +171,7 @@ public string GeraHtmlReciboPagador()
{
html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ReciboPagadorParte10.html"));
}
+
html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ReciboPagadorParte4.html"));
html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ReciboPagadorParte5.html"));
html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ReciboPagadorParte6.html"));
@@ -221,14 +223,16 @@ public string HtmlComprovanteEntrega
html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ComprovanteEntrega5.html"));
html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ComprovanteEntrega6.html"));
- html.Append(MostrarComprovanteEntregaLivre ? GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ComprovanteEntrega71.html") : GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ComprovanteEntrega7.html"));
+ html.Append(MostrarComprovanteEntregaLivre
+ ? GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ComprovanteEntrega71.html")
+ : GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ComprovanteEntrega7.html"));
html.Append("
");
return html.ToString();
}
}
- private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string imagemCodigoBarras, string pixStr = null, int pixTamanhoImagem = 200)
+ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string imagemCodigoBarras, string pixStr = null, int pixTamanhoImagem = 200, bool pixInstrucoes = false)
{
var html = new StringBuilder();
var enderecoBeneficiario = "";
@@ -247,7 +251,6 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
{
html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ReciboBeneficiarioRelatorioValores.html"));
html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.ReciboBeneficiarioParte5.html"));
-
html.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.CabecalhoTabelaDemonstrativo.html"));
var grupoDemonstrativo = new StringBuilder();
@@ -273,13 +276,11 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
grupoDemonstrativo = grupoDemonstrativo.Replace("@DESCRICAOITEM", item.Descricao);
grupoDemonstrativo = grupoDemonstrativo.Replace("@REFERENCIAITEM", item.Referencia);
- grupoDemonstrativo = grupoDemonstrativo.Replace("@VALORITEM", item.Valor.ToString("C", CultureInfo.GetCultureInfo("pt-BR")));
+ grupoDemonstrativo = grupoDemonstrativo.Replace("@VALORITEM", item.Valor.ToString("C", _culture));
}
grupoDemonstrativo.Append(GetResourceHypertext("BoletoNetCore.BoletoImpressao.Parts.TotalDemonstrativo.html"));
- grupoDemonstrativo = grupoDemonstrativo.Replace(
- "@VALORTOTALGRUPO",
- relatorio.Itens.Sum(c => c.Valor).ToString("C", CultureInfo.GetCultureInfo("pt-BR")));
+ grupoDemonstrativo = grupoDemonstrativo.Replace("@VALORTOTALGRUPO", relatorio.Itens.Sum(c => c.Valor).ToString("C", _culture));
}
html = html.Replace("@ITENSDEMONSTRATIVO", grupoDemonstrativo.ToString());
@@ -308,14 +309,14 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
throw new ArgumentNullException("Endereço do Beneficiário");
enderecoBeneficiario = string.Format("{0} - {1} - {2}/{3} - CEP: {4}",
- Boleto.Banco.Beneficiario.Endereco.FormataLogradouro(0),
- Boleto.Banco.Beneficiario.Endereco.Bairro,
- Boleto.Banco.Beneficiario.Endereco.Cidade,
- Boleto.Banco.Beneficiario.Endereco.UF,
- Utils.FormataCEP(Boleto.Banco.Beneficiario.Endereco.CEP));
+ Boleto.Banco.Beneficiario.Endereco.FormataLogradouro(0),
+ Boleto.Banco.Beneficiario.Endereco.Bairro,
+ Boleto.Banco.Beneficiario.Endereco.Cidade,
+ Boleto.Banco.Beneficiario.Endereco.UF,
+ Utils.FormataCEP(Boleto.Banco.Beneficiario.Endereco.CEP));
enderecoBeneficiarioCompacto = string.Format("{0} - CEP: {1}",
- Boleto.Banco.Beneficiario.Endereco.FormataLogradouro(25),
- Utils.FormataCEP(Boleto.Banco.Beneficiario.Endereco.CEP));
+ Boleto.Banco.Beneficiario.Endereco.FormataLogradouro(25),
+ Utils.FormataCEP(Boleto.Banco.Beneficiario.Endereco.CEP));
}
}
}
@@ -331,15 +332,16 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
pagador += string.Format(" - CNPJ: " + Utils.FormataCNPJ(Boleto.Pagador.CPFCNPJ));
break;
}
+
if (Boleto.Pagador.Observacoes != string.Empty)
pagador += " - " + Boleto.Pagador.Observacoes;
var enderecoPagador = string.Empty;
if (!OcultarEnderecoPagador)
{
- enderecoPagador = Boleto.Pagador.Endereco.FormataLogradouro(0) + "
" + string.Format("{0} - {1}/{2}", Boleto.Pagador.Endereco.Bairro, Boleto.Pagador.Endereco.Cidade, Boleto.Pagador.Endereco.UF);
+ enderecoPagador = Boleto.Pagador.Endereco.FormataLogradouro(0) + "
" + $"{Boleto.Pagador.Endereco.Bairro} - {Boleto.Pagador.Endereco.Cidade}/{Boleto.Pagador.Endereco.UF}";
if (Boleto.Pagador.Endereco.CEP != String.Empty)
- enderecoPagador += string.Format(" - CEP: {0}", Utils.FormataCEP(Boleto.Pagador.Endereco.CEP));
+ enderecoPagador += $" - CEP: {Utils.FormataCEP(Boleto.Pagador.Endereco.CEP)}";
}
// Dados do Avalista
@@ -356,6 +358,7 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
avalista += string.Format(" - CNPJ: " + Utils.FormataCNPJ(Boleto.Avalista.CPFCNPJ));
break;
}
+
if (Boleto.Avalista.Observacoes != string.Empty)
avalista += " - " + Boleto.Avalista.Observacoes;
}
@@ -373,12 +376,15 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
if (MostrarContraApresentacaoNaDataVencimento)
dataVencimento = "Contra Apresentação";
- if (String.IsNullOrWhiteSpace(_vLocalLogoBeneficiario))
+ if (string.IsNullOrWhiteSpace(_vLocalLogoBeneficiario))
_vLocalLogoBeneficiario = urlImagemLogo;
+ html.Replace("@PIXINSTRUCOES",
+ pixInstrucoes && !string.IsNullOrWhiteSpace(pixStr) ? GeraHtmlPixInstrucoes(pixStr) : string.Empty);
+
return html
.Replace("@CODIGOBANCO", Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3))
- .Replace("@DIGITOBANCO", Boleto.Banco.Digito.ToString())
+ .Replace("@DIGITOBANCO", Boleto.Banco.Digito)
.Replace("@URLIMAGEMLOGO", urlImagemLogo)
.Replace("@URLIMGBENEFICIARIO", _vLocalLogoBeneficiario)
.Replace("@URLIMAGEMBARRA", urlImagemBarra)
@@ -387,8 +393,8 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
.Replace("@MENSAGEMFIXATOPOBOLETO", Boleto.Banco.Beneficiario.ContaBancaria.MensagemFixaTopoBoleto)
.Replace("@MENSAGEMFIXAPAGADOR", Boleto.Banco.Beneficiario.ContaBancaria.MensagemFixaPagador)
.Replace("@DATAVENCIMENTO", dataVencimento)
- .Replace("@BENEFICIARIO_BOLETO", !Boleto.Banco.Beneficiario.MostrarCNPJnoBoleto ? Boleto.Banco.Beneficiario.Nome : string.Format("{0} - {1}", Boleto.Banco.Beneficiario.Nome, Utils.FormataCNPJ(Boleto.Banco.Beneficiario.CPFCNPJ)))
- .Replace("@BENEFICIARIO", !Boleto.Banco.Beneficiario.MostrarCNPJnoBoleto ? Boleto.Banco.Beneficiario.Nome : string.Format("{0} - {1}", Boleto.Banco.Beneficiario.Nome, Utils.FormataCNPJ(Boleto.Banco.Beneficiario.CPFCNPJ)))
+ .Replace("@BENEFICIARIO_BOLETO", !Boleto.Banco.Beneficiario.MostrarCNPJnoBoleto ? Boleto.Banco.Beneficiario.Nome : $"{Boleto.Banco.Beneficiario.Nome} - {Utils.FormataCNPJ(Boleto.Banco.Beneficiario.CPFCNPJ)}")
+ .Replace("@BENEFICIARIO", !Boleto.Banco.Beneficiario.MostrarCNPJnoBoleto ? Boleto.Banco.Beneficiario.Nome : $"{Boleto.Banco.Beneficiario.Nome} - {Utils.FormataCNPJ(Boleto.Banco.Beneficiario.CPFCNPJ)}")
.Replace("@DATADOCUMENTO", Boleto.DataEmissao.ToString("dd/MM/yyyy"))
.Replace("@NUMERODOCUMENTO", Boleto.NumeroDocumento)
.Replace("@ESPECIEDOCUMENTO", Boleto.EspecieDocumento.ToString())
@@ -396,14 +402,14 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
.Replace("@NOSSONUMERO", Boleto.NossoNumeroFormatado)
.Replace("@CARTEIRA", Boleto.CarteiraImpressaoBoleto)
.Replace("@ESPECIE", Boleto.EspecieMoeda)
- .Replace("@QUANTIDADE", (Boleto.QuantidadeMoeda == 0 ? "" : Boleto.QuantidadeMoeda.ToString()))
+ .Replace("@QUANTIDADE", Boleto.QuantidadeMoeda == 0 ? "" : Boleto.QuantidadeMoeda.ToString())
.Replace("@VALORDOCUMENTO", Boleto.ValorMoeda)
- .Replace("@=VALORDOCUMENTO", (Boleto.ValorTitulo == 0 ? "" : Boleto.ValorTitulo.ToString("C", CultureInfo.GetCultureInfo("pt-BR"))))
- .Replace("@DESCONTOS", (Boleto.ImprimirValoresAuxiliares == false || Boleto.ValorDesconto == 0 ? "" : Boleto.ValorDesconto.ToString("C", CultureInfo.GetCultureInfo("pt-BR"))))
- .Replace("@OUTRASDEDUCOES", (Boleto.ImprimirValoresAuxiliares == false || Boleto.ValorAbatimento == 0 ? "" : Boleto.ValorAbatimento.ToString("C", CultureInfo.GetCultureInfo("pt-BR"))))
- .Replace("@MORAMULTA", (Boleto.ImprimirValoresAuxiliares == false || Boleto.ValorMulta == 0 ? "" : Boleto.ValorMulta.ToString("C", CultureInfo.GetCultureInfo("pt-BR"))))
- .Replace("@OUTROSACRESCIMOS", (Boleto.ImprimirValoresAuxiliares == false || Boleto.ValorOutrasDespesas == 0 ? "" : Boleto.ValorOutrasDespesas.ToString("C", CultureInfo.GetCultureInfo("pt-BR"))))
- .Replace("@VALORCOBRADO", (Boleto.ImprimirValoresAuxiliares == false || Boleto.ValorPago == 0 ? "" : Boleto.ValorPago.ToString("C", CultureInfo.GetCultureInfo("pt-BR"))))
+ .Replace("@=VALORDOCUMENTO", Boleto.ValorTitulo == 0 ? "" : Boleto.ValorTitulo.ToString("C", _culture))
+ .Replace("@DESCONTOS", !Boleto.ImprimirValoresAuxiliares || Boleto.ValorDesconto == 0 ? "" : Boleto.ValorDesconto.ToString("C", _culture))
+ .Replace("@OUTRASDEDUCOES", !Boleto.ImprimirValoresAuxiliares || Boleto.ValorAbatimento == 0 ? "" : Boleto.ValorAbatimento.ToString("C", _culture))
+ .Replace("@MORAMULTA", !Boleto.ImprimirValoresAuxiliares || Boleto.ValorMulta == 0 ? "" : Boleto.ValorMulta.ToString("C", _culture))
+ .Replace("@OUTROSACRESCIMOS", !Boleto.ImprimirValoresAuxiliares || Boleto.ValorOutrasDespesas == 0 ? "" : Boleto.ValorOutrasDespesas.ToString("C", _culture))
+ .Replace("@VALORCOBRADO", !Boleto.ImprimirValoresAuxiliares || Boleto.ValorPago == 0 ? "" : Boleto.ValorPago.ToString("C", _culture))
.Replace("@AGENCIACONTA", Boleto.Banco.Beneficiario.CodigoFormatado)
.Replace("@PAGADOR", pagador)
.Replace("@ENDERECOPAGADOR", enderecoPagador)
@@ -414,7 +420,7 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
.Replace("@USODOBANCO", Boleto.UsoBanco)
.Replace("@IMAGEMCODIGOBARRA", imagemCodigoBarras)
.Replace("@ACEITE", Boleto.Aceite).ToString()
- .Replace("@ENDERECOBENEFICIARIO_BOLETO", MostrarEnderecoBeneficiario ? string.Format(" - {0}", enderecoBeneficiarioCompacto) : "")
+ .Replace("@ENDERECOBENEFICIARIO_BOLETO", MostrarEnderecoBeneficiario ? $" - {enderecoBeneficiarioCompacto}" : "")
.Replace("@ENDERECOBENEFICIARIO", MostrarEnderecoBeneficiario ? enderecoBeneficiario : "")
.Replace("@INSTRUCOES", Boleto.MensagemInstrucoesCaixaFormatado.Replace(Environment.NewLine, "
"))
.Replace("@PARCELAS", Boleto.ParcelaInformativo != string.Empty ? ("Parcela: " + Boleto.ParcelaInformativo) : "");
@@ -427,32 +433,34 @@ private string MontaHtml(string urlImagemLogo, string urlImagemBarra, string ima
///
/// Função utilizada para gerar o html do boleto sem que o mesmo esteja dentro de uma página Web.
///
+ /// O texto a ser incluído no início do e-mail.
/// Local apontado pela imagem de logo.
/// Local apontado pela imagem de barra.
/// Local apontado pela imagem do código de barras.
+ /// Indica se os estilos CSS para renderização em PDF devem ser aplicados.
+ /// A string de pagamento PIX a ser incluída no HTML, se aplicável.
+ /// O tamanho da imagem PIX em pixels.
+ /// Indica se o QrCode de pagamento PIX deve ser incluído nas instruções.
/// StringBuilder conténdo o código html do boleto bancário.
- protected StringBuilder HtmlOffLine(string textoNoComecoDoEmail, string srcLogo, string srcBarra, string srcCodigoBarra, bool usaCsspdf = false, string pixStr = null, int pixTamanhoImagem = 200)
- {//protected StringBuilder HtmlOffLine(string srcCorte, string srcLogo, string srcBarra, string srcPonto, string srcBarraInterna, string srcCodigoBarra)
- //OnLoad(EventArgs.Empty);
-
+ protected StringBuilder HtmlOffLine(string textoNoComecoDoEmail, string srcLogo, string srcBarra, string srcCodigoBarra, bool usaCsspdf = false, string pixStr = null, int pixTamanhoImagem = 200, bool pixInstrucoes = false)
+ {
var html = new StringBuilder();
HtmlOfflineHeader(html, usaCsspdf);
if (!string.IsNullOrEmpty(textoNoComecoDoEmail))
{
html.Append(textoNoComecoDoEmail);
}
- html.Append(MontaHtml(srcLogo, srcBarra, "
", pixStr, pixTamanhoImagem));
+
+ html.Append(MontaHtml(srcLogo, srcBarra, srcCodigoBarra, pixStr, pixTamanhoImagem, pixInstrucoes));
HtmlOfflineFooter(html);
return html;
}
-
-
-
///
/// Monta o Header de um email com pelo menos um boleto dentro.
///
- /// StringBuilder onde o conteudo sera salvo.
+ /// StringBuilder usado para construir o conteúdo HTML.
+ /// Indica se os estilos CSS para renderização em PDF devem ser aplicados.
protected static void HtmlOfflineHeader(StringBuilder html, bool usaCsspdf = false)
{
html.Append("\n");
@@ -463,6 +471,7 @@ protected static void HtmlOfflineHeader(StringBuilder html, bool usaCsspdf = fal
html.Append("
Boleto.Net\n");
#region Css
+
{
var arquivoCss = usaCsspdf ? "BoletoNetCore.BoletoImpressao.BoletoNetPDF.css" : "BoletoNetCore.BoletoImpressao.BoletoNet.css";
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(arquivoCss);
@@ -473,16 +482,15 @@ protected static void HtmlOfflineHeader(StringBuilder html, bool usaCsspdf = fal
html.Append(sr.ReadToEnd());
html.Append("\n");
sr.Close();
- sr.Dispose();
}
}
+
#endregion Css
html.Append(" \n");
html.Append("\n");
}
-
///
/// Monta o Footer de um email com pelo menos um boleto dentro.
///
@@ -493,7 +501,6 @@ protected static void HtmlOfflineFooter(StringBuilder saida)
saida.Append("\n");
}
-
///
/// Junta varios boletos em uma unica AlternateView, para todos serem mandados juntos no mesmo email
///
@@ -516,22 +523,22 @@ public static AlternateView GeraHtmlDeVariosBoletosParaEmail(string textoNoComec
var linkedResources = new List();
HtmlOfflineHeader(corpoDoEmail);
- if (textoNoComecoDoEmail != null && textoNoComecoDoEmail != "")
+ if (!string.IsNullOrEmpty(textoNoComecoDoEmail))
{
corpoDoEmail.Append(textoNoComecoDoEmail);
}
+
foreach (var umBoleto in arrayDeBoletos)
{
if (umBoleto != null)
{
- LinkedResource lrImagemLogo;
- LinkedResource lrImagemBarra;
- LinkedResource lrImagemCodigoBarra;
- umBoleto.GeraGraficosParaEmailOffLine(out lrImagemLogo, out lrImagemBarra, out lrImagemCodigoBarra);
+ umBoleto.GeraGraficosParaEmailOffLine(out LinkedResource lrImagemLogo,
+ out LinkedResource lrImagemBarra,
+ out LinkedResource lrImagemCodigoBarra);
var theOutput = umBoleto.MontaHtml(
- "cid:" + lrImagemLogo.ContentId,
- "cid:" + lrImagemBarra.ContentId,
- "
");
+ $"cid:{lrImagemLogo.ContentId}",
+ $"cid:{lrImagemBarra.ContentId}",
+ $"cid:{lrImagemCodigoBarra.ContentId}");
corpoDoEmail.Append(theOutput);
@@ -540,9 +547,8 @@ public static AlternateView GeraHtmlDeVariosBoletosParaEmail(string textoNoComec
linkedResources.Add(lrImagemCodigoBarra);
}
}
- HtmlOfflineFooter(corpoDoEmail);
-
+ HtmlOfflineFooter(corpoDoEmail);
var av = AlternateView.CreateAlternateViewFromString(corpoDoEmail.ToString(), Encoding.Default, "text/html");
foreach (var theResource in linkedResources)
@@ -550,12 +556,9 @@ public static AlternateView GeraHtmlDeVariosBoletosParaEmail(string textoNoComec
av.LinkedResources.Add(theResource);
}
-
-
return av;
}
-
///
/// Função utilizada gerar o AlternateView necessário para enviar um boleto bancário por e-mail.
///
@@ -565,7 +568,6 @@ public AlternateView HtmlBoletoParaEnvioEmail()
return HtmlBoletoParaEnvioEmail(null);
}
-
///
/// Função utilizada gerar o AlternateView necessário para enviar um boleto bancário por e-mail.
///
@@ -573,12 +575,8 @@ public AlternateView HtmlBoletoParaEnvioEmail()
/// AlternateView com os dados do boleto.
public AlternateView HtmlBoletoParaEnvioEmail(string textoNoComecoDoEmail)
{
- LinkedResource lrImagemLogo;
- LinkedResource lrImagemBarra;
- LinkedResource lrImagemCodigoBarra;
-
- GeraGraficosParaEmailOffLine(out lrImagemLogo, out lrImagemBarra, out lrImagemCodigoBarra);
- var html = HtmlOffLine(textoNoComecoDoEmail, "cid:" + lrImagemLogo.ContentId, "cid:" + lrImagemBarra.ContentId, "cid:" + lrImagemCodigoBarra.ContentId);
+ GeraGraficosParaEmailOffLine(out LinkedResource lrImagemLogo, out LinkedResource lrImagemBarra, out LinkedResource lrImagemCodigoBarra);
+ var html = HtmlOffLine(textoNoComecoDoEmail, $"cid:{lrImagemLogo.ContentId}", $"cid:{lrImagemBarra.ContentId}", $"cid:{lrImagemCodigoBarra.ContentId}");
var av = AlternateView.CreateAlternateViewFromString(html.ToString(), Encoding.Default, "text/html");
@@ -596,263 +594,71 @@ public AlternateView HtmlBoletoParaEnvioEmail(string textoNoComecoDoEmail)
/// O Código de Barras
void GeraGraficosParaEmailOffLine(out LinkedResource lrImagemLogo, out LinkedResource lrImagemBarra, out LinkedResource lrImagemCodigoBarra)
{
- //OnLoad(EventArgs.Empty);
-
var randomSufix = new Random().Next().ToString(); // para podermos colocar no mesmo email varios boletos diferentes
- var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("BoletoNetCore.Imagens." + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg");
+ var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream($"BoletoNetCore.Imagens.{Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3)}.jpg");
lrImagemLogo = new LinkedResource(stream, MediaTypeNames.Image.Jpeg)
{
- ContentId = "logo" + randomSufix
+ ContentId = $"logo{randomSufix}"
};
var assembly = Assembly.GetExecutingAssembly();
var ms = assembly.GetManifestResourceStream("BoletoNetCore.Imagens.barra.jpg");
lrImagemBarra = new LinkedResource(ms, MediaTypeNames.Image.Jpeg)
{
- ContentId = "barra" + randomSufix
+ ContentId = $"barra{randomSufix}"
};
- var cb = new BarCode2of5i(Boleto.CodigoBarra.CodigoDeBarras, 1, 50, Boleto.CodigoBarra.CodigoDeBarras.Length);
+ var cb = new BarCode2of5i(Boleto.CodigoBarra.CodigoDeBarras, 1, 50,
+ Boleto.CodigoBarra.CodigoDeBarras.Length);
ms = new MemoryStream(Utils.ConvertImageToByte(cb.ToBitmap()));
lrImagemCodigoBarra = new LinkedResource(ms, MediaTypeNames.Image.Gif)
{
- ContentId = "codigobarra" + randomSufix
+ ContentId = $"codigobarra{randomSufix}"
};
-
}
-
- ///
- /// Função utilizada para gravar em um arquivo local o conteúdo do boleto. Este arquivo pode ser aberto em um browser sem que o site esteja no ar.
- ///
- /// Path do arquivo que deve conter o código html.
- //public void MontaHtmlNoArquivoLocal(string fileName)
- //{
- // using (var f = new FileStream(fileName, FileMode.Create))
- // {
- // var w = new StreamWriter(f, Encoding.Default);
- // w.Write(MontaHtml());
- // w.Close();
- // f.Close();
- // }
- //}
-
- ///
- /// Monta o Html do boleto bancário
- ///
- /// string
- //public string MontaHtml()
- //{
- // return MontaHtml(null, null);
- //}
-
-
- ///
- /// Monta o Html do boleto bancário
- ///
- /// Caminho do arquivo
- /// Caminho do logo do beneficiario
- /// Html do boleto gerado
- //public string MontaHtml(string fileName, string logoBeneficiario)
- //{
- // if (fileName == null)
- // fileName = Path.GetTempPath();
-
- // if (logoBeneficiario != null)
- // _vLocalLogoBeneficiario = logoBeneficiario;
-
- // //OnLoad(EventArgs.Empty);
-
- // var fnLogo = fileName + @"BoletoNet" + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg";
-
- // if (!File.Exists(fnLogo))
- // {
- // var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("BoletoNetCore.Imagens." + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg");
- // using (Stream file = File.Create(fnLogo))
- // {
- // CopiarStream(stream, file);
- // }
- // }
-
- // var fnBarra = fileName + @"BoletoNetBarra.gif";
- // if (!File.Exists(fnBarra))
- // {
- // var imgConverter = new ImageConverter();
- // var imgBuffer = (byte[])imgConverter.ConvertTo(Html.barra, typeof(byte[]));
- // var ms = new MemoryStream(imgBuffer);
-
- // using (Stream stream = File.Create(fnBarra))
- // {
- // CopiarStream(ms, stream);
- // ms.Flush();
- // ms.Dispose();
- // }
- // }
-
- // var fnCodigoBarras = Path.GetTempFileName();
- // var cb = new BarCode2of5i(Boleto.CodigoBarra.CodigoDeBarras, 1, 50, Boleto.CodigoBarra.CodigoDeBarras.Length);
- // cb.ToBitmap().Save(fnCodigoBarras);
-
- // //return HtmlOffLine(fnCorte, fnLogo, fnBarra, fnPonto, fnBarraInterna, fnCodigoBarras).ToString();
- // return HtmlOffLine(null, fnLogo, fnBarra, fnCodigoBarras).ToString();
- //}
-
- ///
- /// Monta o Html do boleto bancário para View ASP.Net MVC
- ///
- /// Exemplo:
- /// public ActionResult VisualizarBoleto(string Id)
- /// {
- /// BoletoBancario bb = new BoletoBancario();
- /// //...
- /// ViewBag.Boleto = bb.MontaHtml("/Content/Boletos/", "teste1");
- /// return View();
- /// }
- /// //Na view
- /// @{Layout = null;}@Html.Raw(ViewBag.Boleto)
- ///
- ///
- /// Pasta dos boletos. Exemplo MontaHtml("/Content/Boletos/", "000100")
- /// Nome do arquivo para o boleto
- /// Html do boleto gerado
- /// Sandro Ribeiro
- /// 16/11/2012
- //public string MontaHtml(string url, string fileName, bool useMapPathSecure = true)
- //{
- // //Variável para o caminho físico do servidor
- // var pathServer = "";
-
- // //Verifica se o usuário informou uma url válida
- // if (url == null)
- // {
- // //Obriga o usuário a especificar uma url válida
- // throw new ArgumentException("Você precisa informar uma pasta padrão.");
- // }
- // else
- // {
- // if (useMapPathSecure)
- // {
- // //Verifica se o usuário usou barras no início e no final da url
- // if (url.Substring(url.Length - 1, 1) != "/")
- // url = url + "/";
- // if (url.Substring(0, 1) != "/")
- // url = url + "/";
- // //Mapeia o caminho físico dos arquivos
- // pathServer = MapPathSecure(string.Format("~{0}", url));
- // }
-
- // //Verifica se o caminho existe
- // if (!Directory.Exists(pathServer))
- // throw new ArgumentException("A o caminho físico '{0}' não existe.", pathServer);
- // }
- // //Verifica o nome do arquivo
- // if (fileName == null)
- // {
- // fileName = DateTime.Now.Ticks.ToString();
- // }
- // else
- // {
- // if (fileName == "")
- // fileName = DateTime.Now.Ticks.ToString();
- // }
-
- // //Mantive o padrão
- // //OnLoad(EventArgs.Empty);
-
- // //Prepara o arquivo da logo para ser salvo
- // var fnLogo = pathServer + @"BoletoNet" + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg";
- // //Prepara o arquivo da logo para ser usado no html
- // var fnLogoUrl = url + @"BoletoNet" + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg";
-
- // //Salvo a imagem apenas 1 vez com o código do banco
- // if (!File.Exists(fnLogo))
- // {
- // var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("BoletoNetCore.Imagens." + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg");
- // using (Stream file = File.Create(fnLogo))
- // {
- // CopiarStream(stream, file);
- // }
- // }
-
- // //Prepara o arquivo da barra para ser salvo
- // var fnBarra = pathServer + @"BoletoNetBarra.gif";
- // //Prepara o arquivo da barra para ser usado no html
- // var fnBarraUrl = url + @"BoletoNetBarra.gif";
-
- // //Salvo a imagem apenas 1 vez
- // if (!File.Exists(fnBarra))
- // {
- // var imgConverter = new ImageConverter();
- // var imgBuffer = (byte[])imgConverter.ConvertTo(Html.barra, typeof(byte[]));
- // var ms = new MemoryStream(imgBuffer);
-
- // using (Stream stream = File.Create(fnBarra))
- // {
- // CopiarStream(ms, stream);
- // ms.Flush();
- // ms.Dispose();
- // }
- // }
-
- // //Prepara o arquivo do código de barras para ser salvo
- // var fnCodigoBarras = string.Format("{0}{1}_codigoBarras.jpg", pathServer, fileName);
- // //Prepara o arquivo do código de barras para ser usado no html
- // var fnCodigoBarrasUrl = string.Format("{0}{1}_codigoBarras.jpg", url, fileName);
-
- // var cb = new BarCode2of5i(Boleto.CodigoBarra.CodigoDeBarras, 1, 50, Boleto.CodigoBarra.CodigoDeBarras.Length);
-
- // //Salva o arquivo conforme o fileName
- // cb.ToBitmap().Save(fnCodigoBarras);
-
- // //Retorna o Html para ser usado na view
- // return HtmlOffLine(null, fnLogoUrl, fnBarraUrl, fnCodigoBarrasUrl).ToString();
- //}
-
///
/// Monta o Html do boleto bancário com as imagens embutidas no conteúdo, sem necessidade de links externos
/// de acordo com o padrão http://en.wikipedia.org/wiki/Data_URI_scheme
///
- /// Alterado por Olavo Rocha @ Exodus para utilizar arquivos dentro da própria DLL para .net core 2.2
+ /// Alterado por Olavo Rocha @ Exodus para utilizar arquivos dentro da própria DLL para .net core 2.2
///
- /// Converte a Linha Digitável para imagem, com o objetivo de evitar malwares.
- /// Url/Imagem Base64 da Logo do Beneficiário
- /// Html do boleto gerado
- /// Iuri André Stona, Olavo Rocha Neto
- /// 23/01/2014
- /// 07/07/2019
- public string MontaHtmlEmbedded(bool convertLinhaDigitavelToImage = false, bool usaCsspdf = false, string urlImagemLogoBeneficiario = null, string pixString = null, int pixTamanhoImagem = 200)
+ /// Indica se a linha de cobrança deve ser convertida em uma imagem para evitar exploração por malware.
+ /// Determina se os estilos CSS específicos para renderização em formato PDF devem ser aplicados.
+ /// Especifica a URL ou a imagem codificada em Base64 do logotipo do beneficiário a ser exibida no comprovante bancário.
+ /// A string de pagamento PIX a ser incorporada no HTML, se aplicável.
+ /// O tamanho da imagem do código QR PIX, em pixels.
+ /// Indica se o QrCode de pagamento PIX deve ser incluído nas instruções.
+ /// Uma string representando o HTML gerado para o comprovante bancário.
+ public string MontaHtmlEmbedded(bool convertLinhaDigitavelToImage = false, bool usaCsspdf = false, string urlImagemLogoBeneficiario = null, string pixString = null, int pixTamanhoImagem = 200, bool pixInstrucoes = false)
{
- //OnLoad(EventArgs.Empty);
-
var assembly = Assembly.GetExecutingAssembly();
- var imageLogo = "BoletoNetCore.Imagens." + Boleto.Banco.Codigo.ToString("000") + ".jpg";
+ var imageLogo = $"BoletoNetCore.Imagens.{Boleto.Banco.Codigo:000}.jpg";
var streamLogo = assembly.GetManifestResourceStream(imageLogo);
var base64Logo = Convert.ToBase64String(new BinaryReader(streamLogo).ReadBytes((int)streamLogo.Length));
- var fnLogo = string.Format("data:image/jpg;base64,{0}", base64Logo);
+ var fnLogo = $"data:image/jpg;base64,{base64Logo}";
var streamBarra = assembly.GetManifestResourceStream("BoletoNetCore.Imagens.barra.jpg");
var base64Barra = Convert.ToBase64String(new BinaryReader(streamBarra).ReadBytes((int)streamBarra.Length));
- var fnBarra = string.Format("data:image/jpg;base64,{0}", base64Barra);
+ var fnBarra = $"data:image/jpg;base64,{base64Barra}";
var cb = new BarCode2of5i(Boleto.CodigoBarra.CodigoDeBarras, 1, 50, Boleto.CodigoBarra.CodigoDeBarras.Length);
var base64CodigoBarras = Convert.ToBase64String(cb.ToByte());
- var fnCodigoBarras = string.Format("data:image/gif;base64,{0}", base64CodigoBarras);
+ var fnCodigoBarras = $"data:image/gif;base64,{base64CodigoBarras}";
if (convertLinhaDigitavelToImage)
{
-
var linhaDigitavel = Boleto.CodigoBarra.LinhaDigitavel.Replace(" ", " ").Trim();
- var font = SKTypeface.FromFamilyName("Arial", SKFontStyleWeight.Bold, SKFontStyleWidth.Normal, SKFontStyleSlant.Upright);
+ var font = SKTypeface.FromFamilyName("Arial", SKFontStyleWeight.Bold, SKFontStyleWidth.Normal,
+ SKFontStyleSlant.Upright);
var imagemLinha = Utils.DrawText(linhaDigitavel, 40, font, SKColors.Black, SKColors.White);
var base64Linha = Convert.ToBase64String(Utils.ConvertImageToByte(imagemLinha));
- var fnLinha = string.Format("data:image/gif;base64,{0}", base64Linha);
-
- Boleto.CodigoBarra.LinhaDigitavel = @"
";
+ Boleto.CodigoBarra.LinhaDigitavel = $@"
";
}
if (!string.IsNullOrEmpty(urlImagemLogoBeneficiario))
@@ -860,7 +666,7 @@ public string MontaHtmlEmbedded(bool convertLinhaDigitavelToImage = false, bool
_vLocalLogoBeneficiario = urlImagemLogoBeneficiario;
}
- var s = HtmlOffLine(null, fnLogo, fnBarra, fnCodigoBarras, usaCsspdf, pixString, pixTamanhoImagem).ToString();
+ var s = HtmlOffLine(null, fnLogo, fnBarra, fnCodigoBarras, usaCsspdf, pixString, pixTamanhoImagem, pixInstrucoes).ToString();
if (convertLinhaDigitavelToImage)
{
@@ -870,7 +676,6 @@ public string MontaHtmlEmbedded(bool convertLinhaDigitavelToImage = false, bool
return s;
}
-
#endregion Geração do Html OffLine
public SKBitmap GeraImagemCodigoBarras(Boleto boleto)
@@ -881,7 +686,7 @@ public SKBitmap GeraImagemCodigoBarras(Boleto boleto)
private void CopiarStream(Stream entrada, Stream saida)
{
- var bytesLidos = 0;
+ int bytesLidos;
var imgBuffer = new byte[entrada.Length];
while ((bytesLidos = entrada.Read(imgBuffer, 0, imgBuffer.Length)) > 0)
@@ -890,4 +695,4 @@ private void CopiarStream(Stream entrada, Stream saida)
}
}
}
-}
+}
\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/BoletoNet.css b/BoletoNetCore/BoletoImpressao/BoletoNet.css
index 56b66d28..add13cec 100644
--- a/BoletoNetCore/BoletoImpressao/BoletoNet.css
+++ b/BoletoNetCore/BoletoImpressao/BoletoNet.css
@@ -1,13 +1,13 @@
body {
- color: #000000;
- background-color: #ffffff;
- margin-top: 0;
- margin-right: 0;
+ color: #000000;
+ background-color: #ffffff;
+ margin-top: 0;
+ margin-right: 0;
}
* {
- margin: 0px;
- padding: 0px;
+ margin: 0px;
+ padding: 0px;
}
table {
@@ -17,7 +17,7 @@ table {
}
img {
- border: 0;
+ border: 0;
}
.cp {
@@ -26,16 +26,16 @@ img {
}
.ti {
- font: 9px Arial, "Liberation Sans", Helvetica, sans-serif;
+ font: 9px Arial, "Liberation Sans", Helvetica, sans-serif;
}
.ld {
- font: bold 15px Arial, "Liberation Sans", sans-serif;
- color: #000000;
+ font: bold 15px Arial, "Liberation Sans", sans-serif;
+ color: #000000;
}
.w150:empty {
- display: none;
+ display: none;
}
.ct {
@@ -59,32 +59,33 @@ img {
}
.cut {
- width: 665px;
- height: 1px;
- border-top: dashed 1px #000;
+ width: 665px;
+ height: 1px;
+ border-top: dashed 1px #000;
}
.Ac {
- text-align: center;
+ text-align: center;
}
.Ar {
- text-align: right;
+ text-align: right;
}
.Al {
- text-align: left;
+ text-align: left;
}
.At {
- vertical-align: top;
+ vertical-align: top;
}
.Ab {
- vertical-align: bottom;
+ vertical-align: bottom;
}
.ct td, .cp td {
+ padding-top: 2px;
padding-left: 3px;
border-left: solid 1px #000;
padding-right: 3px;
@@ -102,59 +103,60 @@ img {
}
.pL0 {
- padding-left: 0px;
+ padding-left: 0px;
}
.pL6 {
- padding-left: 6px;
+ padding-left: 6px;
}
.pL10 {
- padding-left: 10px;
+ padding-left: 10px;
}
.imgLogo {
- width: 150px;
+ width: 150px;
}
- .imgLogo img {
- width: 150px;
- height: 40px;
- }
+.imgLogo img {
+ width: auto;
+ height: 40px;
+ margin-bottom: 1px;
+}
.barra {
- width: 3px;
- height: 22px;
- vertical-align: bottom;
+ width: 3px;
+ height: 22px;
+ vertical-align: bottom;
}
- .barra img {
- width: 2px;
- height: 22px;
- }
+.barra img {
+ width: 2px;
+ height: 22px;
+}
.rBb td {
- border-bottom: solid 1px #000;
+ border-bottom: solid 1px #000;
}
.BB {
- border-bottom: solid 1px #000;
+ border-bottom: solid 1px #000;
}
.BL {
- border-left: solid 1px #000;
+ border-left: solid 1px #000;
}
.BR {
- border-right: solid 1px #000;
+ border-right: solid 1px #000;
}
.BT1 {
- border-top: dashed 1px #000;
+ border-top: dashed 1px #000;
}
.BT2 {
- border-top: solid 2px #000;
+ border-top: solid 2px #000;
}
.bgcGray {
@@ -162,83 +164,87 @@ img {
}
.h1 {
- height: 1px;
+ height: 1px;
}
.h13 {
- height: 13px;
+ height: 13px;
}
.h12 {
- height: 12px;
+ height: 12px;
}
.h13 td {
- vertical-align: top;
+ vertical-align: top;
}
.h12 td {
- vertical-align: top;
+ vertical-align: top;
+}
+
+.h25 {
+ height: 25px;
}
.w6 {
- width: 6px;
+ width: 6px;
}
.w7 {
- width: 7px;
+ width: 7px;
}
.w34 {
- width: 34px;
+ width: 34px;
}
.w40 {
- width: 40px;
+ width: 40px;
}
.w45 {
- width: 45px;
+ width: 45px;
}
.w53 {
- width: 53px;
+ width: 53px;
}
.w62 {
- width: 62px;
+ width: 62px;
}
.w65 {
- width: 65px;
+ width: 65px;
}
.w72 {
- width: 72px;
+ width: 72px;
}
.w83 {
- width: 83px;
+ width: 83px;
}
.w88 {
- width: 88px;
+ width: 88px;
}
.w104 {
- width: 104px;
+ width: 104px;
}
.w105 {
- width: 105px;
+ width: 105px;
}
.w106 {
- width: 106px;
+ width: 106px;
}
.w112 {
- width: 112px;
+ width: 112px;
}
.w113 {
@@ -246,59 +252,63 @@ img {
}
.w123 {
- width: 123px;
+ width: 123px;
}
.w126 {
- width: 126px;
+ width: 126px;
}
.w128 {
- width: 128px;
+ width: 128px;
}
.w132 {
- width: 132px;
+ width: 132px;
}
.w134 {
- width: 134px;
+ width: 134px;
}
.w150 {
- width: 150px;
+ width: 150px;
}
.w163 {
- width: 163px;
+ width: 163px;
}
.w164 {
- width: 164px;
+ width: 164px;
}
.w180 {
- width: 180px;
+ width: 180px;
}
.w182 {
- width: 182px;
+ width: 182px;
}
.w186 {
- width: 186px;
+ width: 186px;
}
.w192 {
- width: 192px;
+ width: 192px;
}
.w250 {
- width: 250px;
+ width: 250px;
+}
+
+.w286 {
+ width: 286px;
}
.w298 {
- width: 298px;
+ width: 298px;
}
.w409 {
@@ -310,85 +320,88 @@ img {
}
.w472 {
- width: 472px;
+ width: 472px;
}
.w478 {
- width: 478px;
+ width: 478px;
}
.w500 {
- width: 500px;
+ width: 500px;
}
.w544 {
- width: 544px;
+ width: 544px;
}
.w564 {
- width: 564px;
+ width: 564px;
}
.w659 {
- width: 659px;
+ width: 659px;
}
.w666 {
- width: 100%;
+ width: 100%;
}
.w667 {
- width: 667px;
+ width: 667px;
}
.w900 {
- width: 900px;
+ width: 900px;
}
-
.BHead td {
- border-bottom: solid 2px #000;
+ border-bottom: solid 2px #000;
}
.EcdBar {
- height: 50px;
- vertical-align: bottom;
+ height: 50px;
+ vertical-align: bottom;
}
-.rc6 td {
- vertical-align: top;
+.rc6 {
border-bottom: solid 1px #000;
border-left: solid 1px #000;
border-right: solid 1px #000;
}
-.rc6 div {
- padding-left: 6px;
-}
-
-.rc6 .t {
- font: 9px "Arial Narrow", "Liberation Sans Narrow", sans-serif;
- color: #000033;
- height: 13px;
-}
-
-.rc6 .c {
- font: bold 10px Arial, "Liberation Sans", sans-serif;
- color: black;
- height: 12px;
+.rc6 td {
+ vertical-align: top;
+ border-bottom: solid 1px #000;
+ border-left: solid 1px #000;
+ border-right: solid 1px #000;
+ padding-top: 2px;
+ padding-left: 3px;
+ padding-right: 3px;
}
.mt23 {
- margin-top: 23px;
+ margin-top: 23px;
}
.pb4 {
- padding-bottom: 14px;
+ padding-bottom: 14px;
}
.ebc {
- width: 4px;
- height: 440px;
- border-right: dotted 1px #000000;
- margin-right: 4px;
+ width: 4px;
+ height: 440px;
+ border-right: dotted 1px #000000;
+ margin-right: 4px;
+}
+
+.diL {
+ float: left;
+ width: calc(100% - 135px);
}
+
+.diR {
+ float: right;
+ width: 125px;
+ padding: 5px;
+}
\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/BoletoNetPDF.css b/BoletoNetCore/BoletoImpressao/BoletoNetPDF.css
index ce8f76a9..126951b5 100644
--- a/BoletoNetCore/BoletoImpressao/BoletoNetPDF.css
+++ b/BoletoNetCore/BoletoImpressao/BoletoNetPDF.css
@@ -1,13 +1,13 @@
body {
- color: #000000;
- background-color: #ffffff;
- margin-top: 0;
- margin-right: 0;
+ color: #000000;
+ background-color: #ffffff;
+ margin-top: 0;
+ margin-right: 0;
}
* {
- margin: 0px;
- padding: 0px;
+ margin: 0px;
+ padding: 0px;
}
table {
@@ -17,69 +17,75 @@ table {
}
img {
- border: 0;
+ border: 0;
}
.cp {
- font: bold 10px Arial, "Liberation Sans", sans-serif;
- color: black;
+ font: bold 10px Arial, "Liberation Sans", sans-serif;
+ color: #000000;
}
.ti {
- font: 9px Arial, "Liberation Sans", Helvetica, sans-serif;
+ font: 9px Arial, "Liberation Sans", Helvetica, sans-serif;
}
.ld {
- font: bold 15px Arial, "Liberation Sans", sans-serif;
- color: #000000;
+ font: bold 15px Arial, "Liberation Sans", sans-serif;
+ color: #000000;
}
.w150:empty {
- display: none;
+ display: none;
}
.ct {
- font: 9px "Arial Narrow", "Liberation Sans Narrow", sans-serif;
- color: #000033;
+ font: 9px "Arial Narrow", "Liberation Sans Narrow", sans-serif;
+ color: #000000;
}
.cn {
- font: 9px Arial, "Liberation Sans", sans-serif;
- color: black;
+ font: 9px Arial, "Liberation Sans", sans-serif;
+ color: #000000;
+}
+
+.cn8 {
+ font: 8px Arial, "Liberation Sans", sans-serif;
+ color: #000000;
}
.bc {
- font: bold 22px Arial, "Liberation Sans", sans-serif;
- color: #000000;
+ font: bold 22px Arial, "Liberation Sans", sans-serif;
+ color: #000000;
}
.cut {
- width: 665px;
- height: 1px;
- border-top: dashed 1px #000;
+ width: 665px;
+ height: 1px;
+ border-top: dashed 1px #000;
}
.Ac {
- text-align: center;
+ text-align: center;
}
.Ar {
- text-align: right;
+ text-align: right;
}
.Al {
- text-align: left;
+ text-align: left;
}
.At {
- vertical-align: top;
+ vertical-align: top;
}
.Ab {
- vertical-align: bottom;
+ vertical-align: bottom;
}
.ct td, .cp td {
+ padding-top: 2px;
padding-left: 3px;
border-left: solid 1px #000;
padding-right: 3px;
@@ -87,69 +93,70 @@ img {
}
.cpN {
- font: bold 10px Arial, "Liberation Sans", sans-serif;
- color: black;
+ font: bold 10px Arial, "Liberation Sans", sans-serif;
+ color: #000000;
}
.ctN {
- font: 9px "Arial Narrow", "Liberation Sans Narrow", sans-serif;
- color: #000033;
+ font: 9px "Arial Narrow", "Liberation Sans Narrow", sans-serif;
+ color: #000000;
}
.pL0 {
- padding-left: 0px;
+ padding-left: 0px;
}
.pL6 {
- padding-left: 6px;
+ padding-left: 6px;
}
.pL10 {
- padding-left: 10px;
+ padding-left: 10px;
}
.imgLogo {
- width: 150px;
+ width: 150px;
}
- .imgLogo img {
- width: 150px;
- height: 40px;
- }
+.imgLogo img {
+ width: auto;
+ height: 40px;
+ margin-bottom: 1px;
+}
.barra {
- width: 3px;
- height: 22px;
- vertical-align: bottom;
+ width: 3px;
+ height: 22px;
+ vertical-align: bottom;
}
- .barra img {
- width: 2px;
- height: 22px;
- }
+.barra img {
+ width: 2px;
+ height: 22px;
+}
.rBb td {
- border-bottom: solid 1px #000;
+ border-bottom: solid 1px #000;
}
.BB {
- border-bottom: solid 1px #000;
+ border-bottom: solid 1px #000;
}
.BL {
- border-left: solid 1px #000;
+ border-left: solid 1px #000;
}
.BR {
- border-right: solid 1px #000;
+ border-right: solid 1px #000;
}
.BT1 {
- border-top: dashed 1px #000;
+ border-top: dashed 1px #000;
}
.BT2 {
- border-top: solid 2px #000;
+ border-top: solid 2px #000;
}
.bgcGray {
@@ -161,191 +168,200 @@ img {
}
.h13 {
- height: 13px;
+ height: 13px;
}
.h12 {
- height: 12px;
+ height: 12px;
}
.h13 td {
- vertical-align: top;
+ vertical-align: top;
}
.h12 td {
- vertical-align: top;
+ vertical-align: top;
+}
+
+.h25 {
+ height: 25px;
}
.w6 {
- width: 6px;
+ width: 6px;
}
.w7 {
- width: 7px;
+ width: 7px;
}
.w34 {
- width: 34px;
+ width: 34px;
}
.w40 {
- width: 40px;
+ width: 40px;
}
.w45 {
- width: 45px;
+ width: 45px;
}
.w53 {
- width: 53px;
+ width: 53px;
}
.w62 {
- width: 62px;
+ width: 62px;
}
.w65 {
- width: 65px;
+ width: 65px;
}
.w72 {
- width: 72px;
+ width: 72px;
}
.w83 {
- width: 83px;
+ width: 83px;
}
.w88 {
- width: 88px;
+ width: 88px;
}
.w104 {
- width: 104px;
+ width: 104px;
}
.w105 {
- width: 105px;
+ width: 105px;
}
.w106 {
- width: 106px;
+ width: 106px;
}
-.w113 {
- width: 113px;
+.w112 {
+ width: 112px;
}
-.w112 {
- width: 112px;
+.w113 {
+ width: 113px;
}
.w123 {
- width: 123px;
+ width: 123px;
}
.w126 {
- width: 126px;
+ width: 126px;
}
.w128 {
- width: 128px;
+ width: 128px;
}
.w132 {
- width: 132px;
+ width: 132px;
}
.w134 {
- width: 134px;
+ width: 134px;
}
.w150 {
- width: 150px;
+ width: 150px;
}
.w163 {
- width: 163px;
+ width: 163px;
}
.w164 {
- width: 164px;
+ width: 164px;
}
.w180 {
- width: 180px;
+ width: 180px;
}
.w182 {
- width: 182px;
+ width: 182px;
}
.w186 {
- width: 186px;
+ width: 186px;
}
.w192 {
- width: 192px;
+ width: 192px;
}
.w250 {
- width: 250px;
+ width: 250px;
+}
+
+.w286 {
+ width: 286px;
}
.w298 {
- width: 298px;
+ width: 298px;
}
.w409 {
- width: 409px;
+ width: 409px;
}
.w450 {
- width: 450px;
+ width: 450px;
}
.w472 {
- width: 472px;
+ width: 472px;
}
.w478 {
- width: 478px;
+ width: 478px;
}
.w500 {
- width: 500px;
+ width: 500px;
}
.w544 {
- width: 544px;
+ width: 544px;
}
.w564 {
- width: 564px;
+ width: 564px;
}
.w659 {
- width: 659px;
+ width: 659px;
}
.w666 {
- width: 100%;
+ width: 100%;
}
.w667 {
- width: 667px;
+ width: 667px;
}
.w900 {
- width: 900px;
+ width: 900px;
}
+
.BHead td {
- border-bottom: solid 2px #000;
+ border-bottom: solid 2px #000;
}
.EcdBar {
- height: 50px;
- vertical-align: bottom;
+ height: 50px;
+ vertical-align: bottom;
}
.rc6 td {
@@ -353,35 +369,33 @@ img {
border-bottom: solid 1px #000;
border-left: solid 1px #000;
border-right: solid 1px #000;
-}
-
-.rc6 div {
- padding-left: 6px;
-}
-
-.rc6 .t {
- font: 9px "Arial Narrow", "Liberation Sans Narrow", sans-serif;
- color: #000033;
- height: 13px;
-}
-
-.rc6 .c {
- font: bold 10px Arial, "Liberation Sans", sans-serif;
- color: black;
- height: 12px;
+ padding-top: 2px;
+ padding-left: 3px;
+ padding-right: 3px;
}
.mt23 {
- margin-top: 23px;
+ margin-top: 23px;
}
.pb4 {
- padding-bottom: 14px;
+ padding-bottom: 14px;
}
.ebc {
- width: 4px;
- height: 440px;
- border-right: dotted 1px #000000;
- margin-right: 4px;
+ width: 4px;
+ height: 440px;
+ border-right: dotted 1px #000000;
+ margin-right: 4px;
+}
+
+.diL {
+ float: left;
+ width: calc(100% - 135px);
}
+
+.diR {
+ float: right;
+ width: 125px;
+ padding: 5px;
+}
\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/Parts/Pix.html b/BoletoNetCore/BoletoImpressao/Parts/Pix.html
index a506e368..de9ab200 100644
--- a/BoletoNetCore/BoletoImpressao/Parts/Pix.html
+++ b/BoletoNetCore/BoletoImpressao/Parts/Pix.html
@@ -1,8 +1,10 @@
-
-
-

-
Pague esse boleto com PIX. É seguro e imediato!
+
+
+
+

+
Pague esse boleto com PIX. É seguro e imediato!
-
-

+
+
\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/Parts/PixInstrucoes.html b/BoletoNetCore/BoletoImpressao/Parts/PixInstrucoes.html
new file mode 100644
index 00000000..959916da
--- /dev/null
+++ b/BoletoNetCore/BoletoImpressao/Parts/PixInstrucoes.html
@@ -0,0 +1 @@
+

\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte11.html b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte11.html
index 6be88336..7cfafc5b 100644
--- a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte11.html
+++ b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte11.html
@@ -1,5 +1,7 @@
- | @IMAGEMCODIGOBARRA |
+
+
+ |
\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte2.html b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte2.html
index 2c3f293c..5d6ffe38 100644
--- a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte2.html
+++ b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte2.html
@@ -4,7 +4,7 @@
Vencimento |
- | @LOCALPAGAMENTO |
- @DATAVENCIMENTO |
+ @LOCALPAGAMENTO |
+ @DATAVENCIMENTO |
\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte3.html b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte3.html
index dc80f494..81b46c4e 100644
--- a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte3.html
+++ b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte3.html
@@ -4,7 +4,7 @@
Agência / Código Beneficiário |
- | @BENEFICIARIO_BOLETO@ENDERECOBENEFICIARIO_BOLETO |
- @AGENCIACONTA |
+ @BENEFICIARIO_BOLETO@ENDERECOBENEFICIARIO_BOLETO |
+ @AGENCIACONTA |
\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte4.html b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte4.html
index 77f603ea..3a43b4be 100644
--- a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte4.html
+++ b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte4.html
@@ -1,18 +1,18 @@
- | Data do documento |
- No documento |
- Espécie doc. |
- Aceite |
+ Data do documento |
+ No documento |
+ Espécie doc. |
+ Aceite |
Data processamento |
Carteira / Nosso número |
- | @DATADOCUMENTO |
- @NUMERODOCUMENTO |
- @ESPECIEDOCUMENTO |
- @ACEITE |
- @DATAPROCESSAMENTO |
- @NOSSONUMERO |
+ @DATADOCUMENTO |
+ @NUMERODOCUMENTO |
+ @ESPECIEDOCUMENTO |
+ @ACEITE |
+ @DATAPROCESSAMENTO |
+ @NOSSONUMERO |
\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte5.html b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte5.html
index 1123fed8..a8d9182e 100644
--- a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte5.html
+++ b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte5.html
@@ -1,20 +1,20 @@
| Uso do banco |
- C I P |
- Carteira |
- Espécie |
- Quantidade |
+ C I P |
+ Carteira |
+ Espécie |
+ Quantidade |
(x) Valor |
(=) Valor documento |
- | |
- |
- @CARTEIRA |
- @ESPECIE |
- @QUANTIDADE |
- @VALORDOCUMENTO |
- @=VALORDOCUMENTO |
+ |
+ |
+ @CARTEIRA |
+ @ESPECIE |
+ @QUANTIDADE |
+ @VALORDOCUMENTO |
+ @=VALORDOCUMENTO |
\ No newline at end of file
diff --git a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte6.html b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte6.html
index 99664aa7..d4019fce 100644
--- a/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte6.html
+++ b/BoletoNetCore/BoletoImpressao/Parts/ReciboBeneficiarioParte6.html
@@ -1,20 +1,43 @@
-
- |
- Instruções (Texto de responsabilidade do beneficiário)
- @INSTRUCOES
+ |
+
+
+
+ Instruções (Texto de responsabilidade do beneficiário)
+ @INSTRUCOES
+
+ @PIXINSTRUCOES
|
-
- (-) Desconto / Abatimentos
- @DESCONTOS
- (-) Outras deduções
- @OUTRASDEDUCOES
- (+) Mora / Multa
- @MORAMULTA
- (+) Outros acréscimos
- @OUTROSACRESCIMOS
- (=) Valor cobrado
- @VALORCOBRADO
+ |
+
+ |
+ (-) Desconto / Abatimentos
+ @DESCONTOS
+ |
+
+
+ |
+ (-) Outras deduções
+ @OUTRASDEDUCOES
+ |
+
+
+ |
+ (+) Mora / Multa
+ @MORAMULTA
+ |
+
+
+ |
+ (+) Outros acréscimos
+ @OUTROSACRESCIMOS
+ |
+
+
+ |
+ (=) Valor cobrado
+ @VALORCOBRADO
|
+
\ No newline at end of file
diff --git a/BoletoNetCore/Imagens/085.jpg b/BoletoNetCore/Imagens/085.jpg
index e64c535f..b5d12ab6 100644
Binary files a/BoletoNetCore/Imagens/085.jpg and b/BoletoNetCore/Imagens/085.jpg differ