Beispiel #1
0
        public Danfe(DanfeViewModel viewModel)
        {
            ViewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel));

            _Blocos     = new List <BlocoBase>();
            File        = new File();
            PdfDocument = File.Document;

            // De acordo com o item 7.7, a fonte deve ser Times New Roman ou Courier New.
            _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();

            Paginas = new List <DanfePagina>();
            Canhoto = CriarBloco <BlocoCanhoto>();
            IdentificacaoEmitente = AdicionarBloco <BlocoIdentificacaoEmitente>();
            AdicionarBloco <BlocoDestinatarioRemetente>();

            if (ViewModel.LocalRetirada != null && ViewModel.ExibirBlocoLocalRetirada)
            {
                AdicionarBloco <BlocoLocalRetirada>();
            }

            if (ViewModel.LocalEntrega != null && ViewModel.ExibirBlocoLocalEntrega)
            {
                AdicionarBloco <BlocoLocalEntrega>();
            }

            if (ViewModel.Duplicatas.Count > 0)
            {
                AdicionarBloco <BlocoDuplicataFatura>();
            }

            AdicionarBloco <BlocoCalculoImposto>(ViewModel.Orientacao == Orientacao.Paisagem ? EstiloPadrao : CriarEstilo(4.75F));
            AdicionarBloco <BlocoTransportador>();
            AdicionarBloco <BlocoDadosAdicionais>(CriarEstilo(tFonteCampoConteudo: 8));

            if (ViewModel.CalculoIssqn.Mostrar)
            {
                AdicionarBloco <BlocoCalculoIssqn>();
            }

            AdicionarMetadata();

            _FoiGerado = false;
        }
Beispiel #2
0
        public Danfe(DanfeViewModel viewModel, string creditos = null, string metadataCriador = null)
        {
            _creditos        = creditos ?? "Impresso com DanfeSharp";
            _metadataCriador = metadataCriador ?? String.Format("{0} {1} - {2}", "DanfeSharp", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version, "https://github.com/SilverCard/DanfeSharp");

            ViewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel));

            _Blocos     = new List <BlocoBase>();
            File        = new File();
            PdfDocument = File.Document;

            // De acordo com o item 7.7, a fonte deve ser Times New Roman ou Courier New.
            _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();

            Paginas = new List <DanfePagina>();
            Canhoto = CriarBloco <BlocoCanhoto>();
            IdentificacaoEmitente = AdicionarBloco <BlocoIdentificacaoEmitente>();
            AdicionarBloco <BlocoDestinatarioRemetente>();

            if (ViewModel.Duplicatas.Count > 0)
            {
                AdicionarBloco <BlocoDuplicataFatura>();
            }

            AdicionarBloco <BlocoCalculoImposto>(ViewModel.Orientacao == Orientacao.Paisagem ? EstiloPadrao : CriarEstilo(4.75F));
            AdicionarBloco <BlocoTransportador>();
            AdicionarBloco <BlocoDadosAdicionais>(CriarEstilo(tFonteCampoConteudo: 8));

            if (ViewModel.CalculoIssqn.Mostrar)
            {
                AdicionarBloco <BlocoCalculoIssqn>();
            }

            AdicionarMetadata();

            _FoiGerado = false;
        }
Beispiel #3
0
        public DanfeNFC(DanfeViewModel viewModel, string creditos = null, string metadataCriador = null)
        {
            ViewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel));

            File        = new File();
            PdfDocument = File.Document;

            if (viewModel.Produtos.Count <= 20)
            {
                _size = new SizeF(280, viewModel.Produtos.Count * 30 + 600);
            }
            else if (viewModel.Produtos.Count <= 40)
            {
                _size = new SizeF(280, viewModel.Produtos.Count * 14 + 600);
            }
            else if (viewModel.Produtos.Count <= 75)
            {
                _size = new SizeF(280, viewModel.Produtos.Count * 12 + 600);
            }
            else if (viewModel.Produtos.Count <= 150)
            {
                _size = new SizeF(280, viewModel.Produtos.Count * 11 + 600);
            }
            else if (viewModel.Produtos.Count <= 250)
            {
                _size = new SizeF(280, viewModel.Produtos.Count * 10.5F + 600);
            }
            else if (viewModel.Produtos.Count <= 400)
            {
                _size = new SizeF(280, viewModel.Produtos.Count * 10.2F + 600);
            }
            else if (viewModel.Produtos.Count <= 480)
            {
                _size = new SizeF(280, viewModel.Produtos.Count * 10.1F + 600);
            }
            else if (viewModel.Produtos.Count <= 700)
            {
                _size = new SizeF(280, viewModel.Produtos.Count * 9.8F + 600);
            }

            // 1. Add the page to the document!
            _page = new Page(PdfDocument, _size); // Instantiates the page inside the document context.
            PdfDocument.Pages.Add(_page);         // Puts the page in the pages collection.

            // 2. Create a content composer for the page!
            _primitiveComposer = new PrimitiveComposer(_page);

            _creditos        = creditos ?? "Impresso com DanfeSharp";
            _metadataCriador = metadataCriador ?? String.Format("{0} {1} - {2}", "DanfeSharp", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version, "https://github.com/SilverCard/DanfeSharp");

            // De acordo com o item 7.7, a fonte deve ser Times New Roman ou Courier New.
            _FonteFamilia = StandardType1Font.FamilyEnum.Helvetica;
            _FonteRegular = new StandardType1Font(PdfDocument, _FonteFamilia, false, false);
            _FonteNegrito = new StandardType1Font(PdfDocument, _FonteFamilia, true, false);
            _FonteItalico = new StandardType1Font(PdfDocument, _FonteFamilia, false, true);

            EstiloPadrao = CriarEstilo();

            AdicionarMetadata();

            _FoiGerado = false;
        }