public void DesenharBlocos() { var blocos = Danfe.Blocos; foreach (var bloco in blocos) { bloco.Width = RetanguloDesenhavel.Width; if (bloco.Posicao == PosicaoBloco.Topo) { bloco.SetPosition(RetanguloDesenhavel.Location); RetanguloDesenhavel = RetanguloDesenhavel.CutTop(bloco.Height + 3); } else { bloco.SetPosition(RetanguloDesenhavel.X, RetanguloDesenhavel.Bottom - bloco.Height); RetanguloDesenhavel = RetanguloDesenhavel.CutBottom(bloco.Height); } bloco.Draw(Gfx); } RetanguloCreditos = new RectangleF(RetanguloDesenhavel.X, RetanguloDesenhavel.Y - 2, RetanguloDesenhavel.Width, Retangulo.Height - RetanguloDesenhavel.Height - Danfe.EstiloPadrao.PaddingSuperior); RetanguloCorpo = RetanguloDesenhavel; Gfx.Flush(); }
private void DesenharCanhoto() { if (Danfe.ViewModel.QuantidadeCanhotos == 0) { return; } var canhoto = Danfe.Canhoto; canhoto.SetPosition(RetanguloDesenhavel.Location); if (Danfe.ViewModel.Orientacao == Orientacao.Retrato) { canhoto.Width = RetanguloDesenhavel.Width; for (int i = 0; i < Danfe.ViewModel.QuantidadeCanhotos; i++) { canhoto.Draw(Gfx); canhoto.Y += canhoto.Height; } RetanguloDesenhavel = RetanguloDesenhavel.CutTop(canhoto.Height * Danfe.ViewModel.QuantidadeCanhotos); } else { canhoto.Width = RetanguloDesenhavel.Height; Gfx.PrimitiveComposer.BeginLocalState(); Gfx.PrimitiveComposer.Rotate(90, new PointF(0, canhoto.Width + canhoto.X + canhoto.Y).ToPointMeasure()); for (int i = 0; i < Danfe.ViewModel.QuantidadeCanhotos; i++) { canhoto.Draw(Gfx); canhoto.Y += canhoto.Height; } Gfx.PrimitiveComposer.End(); RetanguloDesenhavel = RetanguloDesenhavel.CutLeft(canhoto.Height * Danfe.ViewModel.QuantidadeCanhotos); } }
public void DesenharBlocos(bool isPrimeirapagina = false) { if (isPrimeirapagina && Danfe.ViewModel.QuantidadeCanhotos > 0) { DesenharCanhoto(); } var blocos = isPrimeirapagina ? Danfe._Blocos : Danfe._Blocos.Where(x => x.VisivelSomentePrimeiraPagina == false); foreach (var bloco in blocos) { bloco.Width = RetanguloDesenhavel.Width; if (bloco.Posicao == PosicaoBloco.Topo) { bloco.SetPosition(RetanguloDesenhavel.Location); RetanguloDesenhavel = RetanguloDesenhavel.CutTop(bloco.Height); } else { bloco.SetPosition(RetanguloDesenhavel.X, RetanguloDesenhavel.Bottom - bloco.Height); RetanguloDesenhavel = RetanguloDesenhavel.CutBottom(bloco.Height); } bloco.Draw(Gfx); if (bloco is BlocoIdentificacaoEmitente) { var rf = (bloco as BlocoIdentificacaoEmitente).RetanguloNumeroFolhas; RetanguloNumeroFolhas = rf; } } RetanguloCorpo = RetanguloDesenhavel; Gfx.Flush(); }