Mar*_*hal 3 .net c# printing string thermal-printer
我正在开发一个C#应用程序,用于从SATO(CG408 TT)的热转印打印机打印标签
为此我使用SBPL(SATO的编程语言).看起来如下:
<ESC>A
<ESC>H0050<ESC>V0100<ESC>L0303<ESC>XMSATO
<ESC>H0050<ESC>V0200<ESC>B103100*SATO*
<ESC>H0070<ESC>V0310<ESC>L0101<ESC>XUSATO
<ESC>Q1<ESC>Z
Run Code Online (Sandbox Code Playgroud)
为了与打印机通信并向其发送原始数据,我遵循这种技术.起初我正在尝试使用StringBuilder类构建转义序列.
StringBuilder sb = new StringBuilder();
sb.AppendLine();
sb.AppendLine("<ESC>A");
sb.AppendLine("H0050<ESC>V0100<ESC>L0303<ESC>XMSATO");
Run Code Online (Sandbox Code Playgroud)
等等....
但是如何<ESC>在字符串构建器参数中替换part.我知道字符27,但接下来如何使用AppendLine Command
提前致谢.
const char ESC = '\x1B';
Run Code Online (Sandbox Code Playgroud)
现在你可以像任何其他变量一样使用ESC.请注意,您也可以将esc嵌入到字符串中:"\x1B"但我认为这会变得难以处理(特别是对于相邻的数字).
请不要不 ESC + "somestring" + ESC等等,因为它违背了StringBuilder的目的
你可以
StringBuilder sb = new StringBuilder();
sb.AppendLine();
sb.AppendLine("<ESC>A");
sb.AppendLine("H0050<ESC>V0100<ESC>L0303<ESC>XMSATO");
String output = sb.ToString().Replace("<ESC>", "\x1B")
Run Code Online (Sandbox Code Playgroud)
例如