public void Gerar() { if (_FoiGerado) { throw new InvalidOperationException("O Danfe já foi gerado."); } IdentificacaoEmitente.Logo = _LogoObject; var tabela = new TabelaProdutosServicos(ViewModel, EstiloPadrao); while (true) { DanfePagina p = CriarPagina(); tabela.SetPosition(p.RetanguloCorpo.Location); tabela.SetSize(p.RetanguloCorpo.Size); tabela.Draw(p.Gfx); p.Gfx.Stroke(); p.Gfx.Flush(); if (tabela.CompletamenteDesenhada) { break; } } PreencherNumeroFolhas(); _FoiGerado = true; }
/// <summary> /// Gera o DANFE. /// </summary> public void Gerar() { if (FoiGerado) { return; } DanfePagina page = CriarPaginar(); float y = InnerRect.Top, y2 = InnerRect.Bottom; var canhoto = new BlocoCanhoto(this); var dadosNfe = new BlocoDadosNFe(this); var desti = new BlocoDestinatario(this); var faturas = new BlocoFaturas(this); var calcImposto = new BlocoCalculoImposto(this); var transportador = new BlocoTransportador(this); var dadosAdicionais = new BlocoDadosAdicionais(this); var issqn = new BlocoIssqn(this); page.AdicionarBlocoSuperior(canhoto); page.AdicionarBlocoSuperior(dadosNfe); page.AdicionarBlocoSuperior(desti); if (Model.Duplicatas.Count > 0) { page.AdicionarBlocoSuperior(faturas); } page.AdicionarBlocoSuperior(calcImposto); page.AdicionarBlocoSuperior(transportador); if (Model.MostrarCalculoIssqn) { page.AdicionarBlocoInferior(issqn); } page.AdicionarBlocoInferior(dadosAdicionais); BlocoProdutos produtos = new BlocoProdutos(this, page.GetAlturaCorpo(InnerRect), 0); produtos.ToXObject(); int produtoIndex = produtos.ProdutoIndexEnd; page.AdicionarBlocoSuperior(produtos); while (produtoIndex < Model.Produtos.Count) { page = CriarPaginar(); page.AdicionarBlocoSuperior(dadosNfe); produtos = new BlocoProdutos(this, page.GetAlturaCorpo(InnerRect), produtoIndex); produtos.ToXObject(); produtoIndex = produtos.ProdutoIndexEnd; page.AdicionarBlocoSuperior(produtos); } RenderizarDocumento(); FoiGerado = true; }
internal DanfePagina CriarPaginar() { DanfePagina page = new DanfePagina(this); Document.Pages.Add(page._Page); Paginas.Add(page); return(page); }
private DanfePagina CriarPagina() { DanfePagina p = new DanfePagina(this); Paginas.Add(p); p.DesenharBlocos(Paginas.Count == 1); p.DesenharCreditos(); // Ambiente de homologação // 7. O DANFE emitido para representar NF-e cujo uso foi autorizado em ambiente de // homologação sempre deverá conter a frase “SEM VALOR FISCAL” no quadro “Informações // Complementares” ou em marca d’água destacada. if (ViewModel.TipoAmbiente == 2) { p.DesenharAvisoHomologacao(); } return(p); }
internal DanfePagina CriarPaginar() { DanfePagina page = new DanfePagina(this); Document.Pages.Add(page._Page); Paginas.Add(page); return page; }