public override void SetFont(ThermalFontsEnum font) { if (font == ThermalFontsEnum.NOP) { return; } switch (font) { case ThermalFontsEnum.A: internalSend(FontACmd); break; case ThermalFontsEnum.B: internalSend(FontBCmd); break; case ThermalFontsEnum.C: internalSend(FontCCmd); break; } }
/// <summary> /// <para>Imprime um texto utilizando as formatações abaixo:</para> /// <para>{FT:N} - Tipo de fonte N=A, B ou C <br />{EX} - Fonte expandida <br />{CE} - Centralizado <br /> {AD} - Alinhado a direita <br />{AE} - Alinhado a esquerda<br /> {RE} - Reiniciar parametros <br />{FE:N} - Feed N = quantidade de linhas <br />{BP} - Beep (Não implementado)</para> /// <para>{CO} - Cortar papel parcial</para> /// </summary> /// <param name="texto">Texo a ser impresso (Cada linha deve conter um comando Enviroment.NewLine)</param> public void PrintGenericFormat(string texto) { RemoveAccentuation(ref texto); ThermalFontsEnum fonteAtual = ThermalFontsEnum.A; foreach (var linha in texto.Split(Environment.NewLine.ToCharArray())) { switch (linha.Trim()) { case "{EX}": //Expandido SetScalars(FontWidthScalarEnum.w2, FontHeighScalarEnum.h1); break; case "{CE}": //Centralizado SetAlignment(FontAlignment.Center); break; case "{AE}": //Alinhamento esquerda SetAlignment(FontAlignment.Left); break; case "{AD}": //alinhamento direita SetAlignment(FontAlignment.Right); break; case "{RE}": //Reiniciar configuração Reinitialize(); SetFont(fonteAtual); break; case "{RV}": //Reverso Reverse(); break; case "{BP}": //Beep //Beep break; case "{CO}": //Cortar Cut(CutModeEnum.Parcial); break; default: if (linha.Contains("{FE:")) { int feed; if (int.TryParse(linha.Split(':').ToString(), out feed)) { FormFeed(feed); } else { FormFeed(); } break; } if (linha.Contains("{FT:")) { if (linha.Split(':')[0].Equals("A")) { SetFont(ThermalFontsEnum.A); fonteAtual = ThermalFontsEnum.A; } if (linha.Split(':')[1][0].ToString().Equals("B")) { SetFont(ThermalFontsEnum.B); fonteAtual = ThermalFontsEnum.B; } if (linha.Split(':')[0].Equals("C")) { SetFont(ThermalFontsEnum.C); fonteAtual = ThermalFontsEnum.C; } break; } if (linha.Contains("{ES:")) //Escala { var regex = new Regex(@"[^\d]"); string n = regex.Replace(linha, ""); if (int.TryParse(n, out int esc)) { switch (esc) { case 0: SetScalars(FontWidthScalarEnum.w1, FontHeighScalarEnum.h1); break; case 1: SetScalars(FontWidthScalarEnum.w2, FontHeighScalarEnum.h1); break; case 2: SetScalars(FontWidthScalarEnum.w3, FontHeighScalarEnum.h2); break; case 3: SetScalars(FontWidthScalarEnum.w4, FontHeighScalarEnum.h3); break; case 4: SetScalars(FontWidthScalarEnum.w5, FontHeighScalarEnum.h4); break; default: break; } } break; } PrintASCIIString(linha + Environment.NewLine); break; } } }
/// <inheritdoc /> /// <summary> /// Define uma fonte /// </summary> /// <param name="font">Font to use</param> public abstract void SetFont(ThermalFontsEnum font);