示例#1
0
        private RectangleF GetFolhaRect()
        {
            BlocoDadosNFe bloco = BlocosSuperiores.FirstOrDefault(x => x is BlocoDadosNFe) as BlocoDadosNFe;

            if (bloco == null)
            {
                throw new Exception("O bloco BlocoDadosNFe não foi encontrado.");
            }

            RectangleF r = bloco.RetanguloFolha;

            r.X += bloco.Posicao.X;
            r.Y += bloco.Posicao.Y;

            return(r);
        }
示例#2
0
        public void Renderizar(int pagina, int nPaginas)
        {
            PosicionarBlocos();

            foreach (var bloco in BlocosSuperiores.Union(BlocosInferiores))
            {
                _Composer.ShowXObject(bloco.ToXObject(), bloco.Posicao);
            }

            PrintNumeroFolhas(pagina, nPaginas);

            if (_Danfe.Model.TipoAmbiente != 1)
            {
                PrintMarcaDAgua("SEM VALOR FISCAL");
            }

            PrintCreditos();

            _Composer.Flush();
        }
示例#3
0
        private void PrintMarcaDAgua(String text)
        {
            PointF p = PointF.Empty;

            var blocoProdutos = BlocosSuperiores.FirstOrDefault(x => x is BlocoProdutos);

            if (blocoProdutos == null)
            {
                p = new PointF(_Danfe.Size.Width / 2f, _Danfe.Size.Height / 2f);
            }
            else
            {
                p.X = blocoProdutos.Posicao.X + blocoProdutos.Size.Width / 2F;
                p.Y = blocoProdutos.Posicao.Y + blocoProdutos.Size.Height / 2F;
            }

            _Composer.BeginLocalState();
            _Composer.SetFont(_Danfe.FontBold, 50);
            org.pdfclown.documents.contents.ExtGState state = new org.pdfclown.documents.contents.ExtGState(_Danfe.Document);
            state.FillAlpha = 0.3F;
            _Composer.ApplyState(state);
            _Composer.ShowText(text, p, XAlignmentEnum.Center, YAlignmentEnum.Middle, 0);
            _Composer.End();
        }
示例#4
0
 public void AdicionarBlocoSuperior(BlocoDanfe bloco)
 {
     BlocosSuperiores.Add(bloco);
 }
示例#5
0
 public float GetAlturaCorpo(RectangleF innerRectangle)
 {
     return(innerRectangle.Height - BlocosSuperiores.Sum(x => x.Size.Height) - BlocosInferiores.Sum(x => x.Size.Height));
 }