private void PrintDescricaoDanfe(RectangleF area, BlockComposer bComp, PrimitiveComposer comp) { comp.SafeDrawRectangle(area); // Retangulo com padding RectangleF pRet = area.GetPaddedRectangleMm(1); // DANFE e descrição bComp.SafeBegin(pRet, XAlignmentEnum.Center, YAlignmentEnum.Top); comp.SetFont(Danfe.FontBold, 12); bComp.ShowText("DANFE"); comp.SetFont(Danfe.Font, 6); bComp.ShowBreak(new SizeF(0, 1)); bComp.ShowText(DescricaoDanfe); bComp.End(); // Entrada, Saída RectangleF rEntrasaSaida = new RectangleF(pRet.X, bComp.BoundBox.Bottom + Utils.Mm2Pu(1.5F), pRet.Width, pRet.Bottom - bComp.BoundBox.Bottom); rEntrasaSaida = rEntrasaSaida.GetPaddedRectangleMm(0, 2.5F); comp.SetFont(Danfe.Font, 8); bComp.SafeBegin(rEntrasaSaida, XAlignmentEnum.Left, YAlignmentEnum.Top); bComp.ShowText("0 - Entrada\n1 - Saída"); bComp.End(); RectangleF rEntrasaSaida2 = bComp.BoundBox; rEntrasaSaida2 = new RectangleF(rEntrasaSaida.Right - bComp.BoundBox.Height, bComp.BoundBox.Y, bComp.BoundBox.Height, bComp.BoundBox.Height); comp.SafeDrawRectangle(rEntrasaSaida2); bComp.SafeBegin(rEntrasaSaida2, XAlignmentEnum.Center, YAlignmentEnum.Middle); bComp.ShowText(Danfe.Model.TipoNF.ToString()); bComp.End(); // Número Série e Folha RectangleF retEsquerdo = pRet; retEsquerdo.Width = Utils.Mm2Pu(8); RectangleF retDireito = pRet; retDireito.X = retEsquerdo.Right + Utils.Mm2Pu(1); retDireito.Width = pRet.Right - retDireito.Left; RetanguloFolha = retDireito; retDireito.Height -= (float)Danfe.FontBold.GetLineHeight(TamanhoFonteNumeracao); comp.SetFont(Danfe.FontBold, TamanhoFonteNumeracao); bComp.SafeBegin(retEsquerdo, XAlignmentEnum.Right, YAlignmentEnum.Bottom); bComp.ShowText("Nº\nSérie\nFolha"); bComp.End(); bComp.SafeBegin(retDireito, XAlignmentEnum.Left, YAlignmentEnum.Bottom); bComp.ShowText(String.Format("{0}\n{1}", Danfe.Model.NumeroNF.ToString(Formatador.FormatoNumeroNF), Danfe.Model.Serie)); bComp.End(); }
private float CalcularAltura() { Double larguraTexto = Danfe.InnerRect.Width - Utils.Mm2Pu(78F); double alturaTexto = Utils.CountTextLines(Danfe.Font, TamanhoFonteCorpo, larguraTexto, Danfe.Model.InformacoesComplementaresCompleta) * (Danfe.Font.GetLineHeight(TamanhoFonteCorpo) + DanfeCampo.LineSpace); alturaTexto += Danfe.FontBold.GetLineHeight(DanfeCampo.TamanhoFonteCabecalho) + DanfeCampo.LineSpace; alturaTexto += DanfeCampo.PaddingSuperior + DanfeCampo.PaddingInferior; return((float)Math.Max(alturaTexto, AlturaMinima)); }
public DanfeProdutosServicosTabela(DanfeDocumento documento) { // _Rectangles = new RectangleF[NColunas]; _Documento = documento; // Converte as larguras para PDF Unit for (int i = 0; i < _Colunas.Length; i++) { _Colunas[i].Largura = Utils.Mm2Pu(_Colunas[i].Largura); } }
/// <summary> /// Posiciona os campos lado a lado em ordem utilizando a largura contida no array /// </summary> /// <param name="area">Retângulo contendo a área na qual os campos irão serem posicionados.</param> /// <param name="larguras">Larguras dos campos em milímetros</param> /// <param name="campos">Campos a serem posicionados.</param> public static void PosicionarLadoLadoMm(RectangleF area, float[] larguras, params DanfeCampo[] campos) { for (int i = 0; i < larguras.Length; i++) { if (larguras[i] != 0) { larguras[i] = Utils.Mm2Pu(larguras[i]); } } PosicionarLadoLado(area, larguras, campos); }
public void PrintCreditos() { BlockComposer bComp = new BlockComposer(_Composer); RectangleF rect = _Danfe.InnerRect; rect.Y = rect.Bottom + Utils.Mm2Pu(0.5F); rect.Height = _Danfe.Size.Height - rect.Y; _Composer.SetFont(_Danfe.Font, 6); bComp.SafeBegin(rect, XAlignmentEnum.Right, YAlignmentEnum.Top); bComp.ShowText("Gerado com DanfeSharp"); bComp.End(); }
public void PrintCreditos() { BlockComposer bComp = new BlockComposer(_Composer); RectangleF rect = _Danfe.InnerRect; rect.Y = rect.Bottom + Utils.Mm2Pu(0.5F); rect.Height = _Danfe.Size.Height - rect.Y; _Composer.SetFont(_Danfe.Font, 6); bComp.SafeBegin(rect, XAlignmentEnum.Right, YAlignmentEnum.Top); bComp.ShowText(string.Format("Gerado em {0} com Lenus UX | www.sysvalley.com.br", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"))); bComp.End(); }
protected override void PosicionarCampos() { RectangleF linha = new RectangleF(InternalRectangle.Left, InternalRectangle.Top, InternalRectangle.Width, Danfe.CampoAltura); PosicionarLadoLadoMm(linha, new float[] { 0, 25, 30, 24, 10, 35 }, RazaoSocial, FreteConta, CodigoAntt, PlacaVeiculo, UfVeiculo, CnpjCpf); linha.Y = linha.Bottom; PosicionarLadoLado(linha, new float[] { 0, CodigoAntt.Retangulo.Width + PlacaVeiculo.Retangulo.Width, UfVeiculo.Retangulo.Width, CnpjCpf.Retangulo.Width }, Endereco, Municipio, EnderecoUf, IE); linha.Y = linha.Bottom; float l = (Endereco.Retangulo.Width - Utils.Mm2Pu(20)) / 2F; PosicionarLadoLado(linha, new float[] { Utils.Mm2Pu(20), l, l, 0, Utils.Mm2Pu(35), Utils.Mm2Pu(35) }, Quantidade, Especie, Marca, Numeracao, PesoBruto, PesoLiquido); }
public DanfeDocumento(DanfeViewModel model, float margem) { Margem = margem; _File = new org.pdfclown.files.File(); Document = _File.Document; Model = model; Size = new SizeF(Utils.Mm2Pu(A4Tamanho.Width), Utils.Mm2Pu(A4Tamanho.Height)); Font = new org.pdfclown.documents.contents.fonts.StandardType1Font(Document, org.pdfclown.documents.contents.fonts.StandardType1Font.FamilyEnum.Times, false, false); FontBold = new org.pdfclown.documents.contents.fonts.StandardType1Font(Document, org.pdfclown.documents.contents.fonts.StandardType1Font.FamilyEnum.Times, true, false); InnerRect = new RectangleF(0, 0, Utils.Mm2Pu(A4Tamanho.Width), Utils.Mm2Pu(A4Tamanho.Height)).GetPaddedRectangleMm(5); Paginas = new List <DanfePagina>(); AdicionarMetadata(); FoiGerado = false; }
/// <summary> /// Imprime o campo no composer. /// </summary> /// <param name="comp"></param> public void Print(PrimitiveComposer comp, org.pdfclown.documents.contents.fonts.Font fonte, org.pdfclown.documents.contents.fonts.Font fonteBold) { BlockComposer bComp = new BlockComposer(comp); RectangleF pRect = Retangulo.GetPaddedRectangle(PaddingHorizontal, PaddingHorizontal, PaddingSuperior, PaddingInferior); comp.SetFont(fonteBold, TamanhoFonteCabecalho); ValidadeRectangle(pRect, comp); bComp.SafeBegin(pRect, XAlignmentEnum.Left, YAlignmentEnum.Top); bComp.ShowText(Cabecalho.ToUpper()); bComp.End(); bComp.LineSpace = new Length(LineSpace, Length.UnitModeEnum.Absolute); if (!String.IsNullOrWhiteSpace(Corpo)) { org.pdfclown.documents.contents.fonts.Font fonteCorpo = IsCorpoNegrito ? fonteBold : fonte; double largura = fonteCorpo.GetWidth(Corpo, CorpoTamanhoFonte); double novoTamanho = CorpoTamanhoFonte; if (!MultiLinha && largura > pRect.Width) { novoTamanho = (CorpoTamanhoFonte * pRect.Width) / largura - Utils.Mm2Pu(0.005F); comp.SetFont(fonteCorpo, novoTamanho); } comp.SetFont(fonteCorpo, novoTamanho); if (CorpoAlinhamentoY == YAlignmentEnum.Top) { float yOffSet = (float)fonteBold.GetLineHeight(TamanhoFonteCabecalho) + LineSpace; pRect.Y += yOffSet; pRect.Height -= yOffSet; } ValidadeRectangle(pRect, comp); bComp.SafeBegin(pRect, CorpoAlinhamentoX, CorpoAlinhamentoY); bComp.ShowText(Corpo); bComp.End(); } comp.SafeDrawRectangle(Retangulo); }
public DanfeDocumento(DanfeViewModel model) : this(model, Utils.Mm2Pu(5)) { }
public static RectangleF GetPaddedRectangleMm(this RectangleF rect, float vertical, float horizontal) { horizontal = Utils.Mm2Pu(horizontal); vertical = Utils.Mm2Pu(vertical); return(rect.GetPaddedRectangle(horizontal, horizontal, vertical, vertical)); }
public static RectangleF GetPaddedRectangleMm(this RectangleF rect, float pLeft, float pRight, float pTop, float pBottom) { return(rect.GetPaddedRectangle(Utils.Mm2Pu(pLeft), Utils.Mm2Pu(pRight), Utils.Mm2Pu(pTop), Utils.Mm2Pu(pBottom))); }
public static RectangleF GetPaddedRectangleMm(this RectangleF rect, float padding) { padding = Utils.Mm2Pu(padding); return(rect.GetPaddedRectangle(padding, padding, padding, padding)); }