public static void PrintEtiqueta(EtiquetaModel etiqueta, int qtd, string printer) { StringBuilder sb = new StringBuilder(); //sb.AppendLine("Q832"); sb.AppendLine("R0,0"); sb.AppendLine("N"); sb.AppendLine("D11"); sb.AppendLine("ZB"); for (int i = 0; i < etiqueta.Colunas; i++) { int startPos = (int)(i * (etiqueta.Width.CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)) + (i * etiqueta.Espacamento.CmToPoints() * GetDpiMultiplier(etiqueta.Dpi))); foreach (EEModel element in etiqueta.ElementModels) { switch (element.Tipo) { case Enums.EEType.BarCode: sb.AppendLine($"B{startPos + ((double)element.X).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{((double)element.Y).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{(int)element.Rotacao},{Funcoes.GetBarcodeParam(element.TipoCodBarras)},{2 * element.Scale},{2 * element.Scale},{element.Altura.CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{(element.ShowHumanCode ? "B" : "N")},\"{element.Texto}\""); break; case Enums.EEType.Texto: sb.AppendLine($"A{startPos + ((double)element.X).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{((double)element.Y).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{(int)element.Rotacao},{element.TamanhoFonte},{1},{1},N,\"{element.Texto}\""); break; case Enums.EEType.PrecoMascarado: sb.AppendLine($"A{startPos + ((double)element.X).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{((double)element.Y).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{(int)element.Rotacao},{element.TamanhoFonte},{1},{1},N,\"{element.Texto}\""); break; case Enums.EEType.Linha: bool invert = (element.Rotacao == Enums.ElementRotation.ROT90 || element.Rotacao == Enums.ElementRotation.ROT270); int altura = invert ? (int)((element.Scale * 6).CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)) : (int)((element.Altura).CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)); int largura = !invert ? (int)((element.Scale * 6).CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)) : (int)((element.Altura).CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)); int x = startPos + (int)(((double)element.X).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)); int y = (int)(((double)element.Y).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)); if (element.Rotacao == ElementRotation.ROT270) { y = y - altura; } sb.AppendLine($"LO{x},{y},{largura},{altura}"); break; default: throw new NotImplementedException("Elemento não implementado!"); } } } int rows = (qtd + etiqueta.Colunas - 1) / etiqueta.Colunas; sb.AppendLine($"P{rows}"); sb.AppendLine("N"); PrinterUtils.PrintRaw(printer, sb.ToString()); }
private void btnOpenEtiquetasFolder_Click(object sender, RoutedEventArgs e) { Funcoes.OpenEtiquetasFolder(); }