protected BlocoEventoBase(DanfeEventoViewModel viewModel, Estilo estilo) : base(estilo) { MainVerticalStack = new VerticalStack(); ViewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel)); if (!string.IsNullOrWhiteSpace(Cabecalho)) { MainVerticalStack.Add(new CabecalhoBloco(estilo, Cabecalho)); } }
public BlocoEventoCabecalho(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo) { var ts = new TextStack(BoundingBox) { Height = 30, AlinhamentoVertical = AlinhamentoVertical.Centro, AlinhamentoHorizontal = AlinhamentoHorizontal.Centro, LineHeightScale = 2F } .AddLine(viewModel.TituloEvento, Estilo.CriarFonteNegrito(15)) .AddLine("Não possui valor fiscal. Simples representação do evento indicado abaixo.", Estilo.FonteCampoConteudo) .AddLine("CONSULTE A AUTENTICIDADE NO SITE DA SEFAZ AUTORIZADORA.", Estilo.FonteCampoConteudo); MainVerticalStack.Add(ts); }
public BlocoEventoCartaCorrecaoCondicao(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo) { var condicao = new CampoMultilinha("", viewModel.CondicaoUso, estilo) { Height = AlturaCondicao }; var linha = new FlexibleLine { Height = AlturaCondicao }; linha.ComElemento(condicao).ComLargurasIguais(); MainVerticalStack.Add(linha); }
public BlocoEventoCancelamento(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo) { var campoJustificativa = new CampoMultilinha("", viewModel.Justificativa, estilo, AlinhamentoHorizontal.Esquerda, true) { Height = AlturaCampo }; var linha = new FlexibleLine { Height = AlturaCampo } .ComElemento(campoJustificativa) .ComLargurasIguais(); MainVerticalStack.Add(linha); }
private void btnGerarDanfeEvento_Click(object sender, EventArgs e) { const string arquivo = @"D:\35210438707682000140550010000010661360746950_110110_02-procEventoNFe.xml"; var modelo = DanfeEventoViewModel.CriarDeArquivoXml(arquivo); modelo.DefinirTextoCreditos("Emitido pelo software VipERP - www.vipsolucoes.com"); using (var danfe = new DanfeEventoService(modelo)) { danfe.Gerar(); danfe.Salvar(@"D:\danfeEventoOk.pdf"); } MessageBox.Show("Danfe Gerada"); }
public BlocoEventoIdentificacao(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo) { #region Propriedades var chaveAcesso = DanfeHelper.FormatarChaveAcesso(viewModel.ChaveAcesso); var modelo = viewModel.ChaveAcesso.Substring(20, 2); var serie = viewModel.ChaveAcesso.Substring(22, 3); var numero = DanfeHelper.FormatarNumeroNF(viewModel.ChaveAcesso.Substring(25, 9)); var ano = viewModel.ChaveAcesso.Substring(2, 2); var mes = viewModel.ChaveAcesso.Substring(4, 2); #endregion var codigoBarras = new Barcode128C(viewModel.ChaveAcesso, Estilo) { Height = AlturaCodigo }; var coluna = new VerticalStack(); var linha1 = new LinhaCampos(estilo) { Height = AlturaLinhaCampo } .ComCampo("MODELO", modelo) .ComCampo("SÉRIE", serie) .ComCampo("NÚMERO", numero) .ComCampo("MÊS / ANO DA EMISSÃO", $"{mes} / {ano}") .ComLargurasIguais(); var linha2 = new Campo("CHAVE DE ACESSO", chaveAcesso, estilo) { Height = AlturaLinhaCampo }; coluna.Add(linha1, linha2); var fl = new FlexibleLine { Height = codigoBarras.Height } .ComElemento(coluna) .ComElemento(codigoBarras) .ComLargurasIguais(); MainVerticalStack.Add(fl); }
public DanfeEventoService(DanfeEventoViewModel viewModel) { ViewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel)); _file = new File(); Blocos = new List <BlocoEventoBase>(); PdfDocument = _file.Document; // De acordo com o item 7.7, a fonte deve ser Times New Roman ou Courier New. var fonteFamilia = StandardType1Font.FamilyEnum.Times; _fonteRegular = new StandardType1Font(PdfDocument, fonteFamilia, false, false); _fonteNegrito = new StandardType1Font(PdfDocument, fonteFamilia, true, false); _fonteItalico = new StandardType1Font(PdfDocument, fonteFamilia, false, true); EstiloPadrao = CriarEstilo(); EstiloPadrao.FonteBlocoCabecalho.Tamanho = 10; var estiloInformacao = CriarEstilo(tFonteCampoConteudo: 12f); estiloInformacao.FonteBlocoCabecalho.Tamanho = 10; Paginas = new List <DanfeEventoPagina>(); AdicionarBloco <BlocoEventoCabecalho>(); AdicionarBloco <BlocoEventoIdentificacao>(); AdicionarBloco <BlocoEventoDados>(); switch (viewModel.TipoEvento) { case NFeTipoEvento.CartaCorrecao: AdicionarBloco <BlocoEventoCartaCorrecaoCondicao>(); AdicionarBloco <BlocoEventoCartaCorrecao>(estiloInformacao); break; case NFeTipoEvento.Cancelamento: case NFeTipoEvento.CancelamentoST: AdicionarBloco <BlocoEventoCancelamento>(estiloInformacao); break; } AdicionarMetadata(); _FoiGerado = false; }
public BlocoEventoDados(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo) { var ambiente = viewModel.TipoAmbiente == 1 ? "PRODUÇÃO" : "HOMOLOGAÇÃO - SEM VALOR FISCAL"; AdicionarLinhaCampos() .ComCampo("ORGÃO", viewModel.Orgao.ToString()) .ComCampo("AMBIENTE", ambiente, AlinhamentoHorizontal.Centro) .ComCampo("DATA / HORA DO EVENTO", ViewModel.DataHoraEvento.FormatarDataHora(), AlinhamentoHorizontal.Centro) .ComLarguras(30F * Proporcao, 0, 45F * Proporcao); AdicionarLinhaCampos() .ComCampo("EVENTO", viewModel.TipoEvento.GetDFeValue()) .ComCampo("DESCRIÇÃO DO EVENTO", viewModel.DescricaoEvento) .ComCampo("SEQUÊNCIA DO EVENTO", viewModel.SequenciaEvento.ToString(), AlinhamentoHorizontal.Centro) .ComLarguras(30F * Proporcao, 0, 45F * Proporcao); AdicionarLinhaCampos() .ComCampo("STATUS", $"{viewModel.CodigoStatus} - {viewModel.Motivo}") .ComCampo("PROTOCOLO", viewModel.Protocolo) .ComLarguras(0, 45F * Proporcao); }