将转义字符发送到打印机

发布于 2024-10-29 06:54:07 字数 827 浏览 5 评论 0原文

我正在开发一个 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

为了与打印机通信并向其发送原始数据,我遵循技术。首先,我尝试使用 StringBuilder 类构建转义序列。

StringBuilder sb = new StringBuilder();
              sb.AppendLine();
              sb.AppendLine("<ESC>A");
              sb.AppendLine("H0050<ESC>V0100<ESC>L0303<ESC>XMSATO");

等等......

但是我如何替换字符串生成器参数中的 部分。我知道字符 27,但是如何将它与 AppendLine 命令一起使用

提前致谢。

I am developing an C# application to print labels from a thermal transfer printer from SATO (CG408 TT)

For this I am using SBPL (Programming language for SATO). Which looks something like following:

<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

To communicate with Printer and send raw data to it I am following this technique. At first i am trying to build the escape sequences using StringBuilder Class.

StringBuilder sb = new StringBuilder();
              sb.AppendLine();
              sb.AppendLine("<ESC>A");
              sb.AppendLine("H0050<ESC>V0100<ESC>L0303<ESC>XMSATO");

and so on....

But how can I replace <ESC> part in string builder argument. I know that character 27, but then how to use it with AppendLine Command

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

<逆流佳人身旁 2024-11-05 06:54:07
const char ESC = '\x1B';

现在您可以像使用任何其他变量一样使用 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")

const char ESC = '\x1B';

now you can use ESC like any other variable. Note that you can embed esc in a string as well: "\x1B" but I suppose that would become unwieldy (especially with adjacent numbers).

Please do not ESC + "somestring" + ESC etc. because it defeats the purpose of the StringBuilder

You could

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")

e.g.

暗喜 2024-11-05 06:54:07

这应该有效

sb.AppendLine(((char)27).ToString());

This should work

sb.AppendLine(((char)27).ToString());
一抹淡然 2024-11-05 06:54:07

对于 OPOS 驱动程序,我最终使用

string ESC = System.Text.ASCIIEncoding.ASCII.GetString(new byte[] { 27 }); 

For OPOS Drivers, I ended up using

string ESC = System.Text.ASCIIEncoding.ASCII.GetString(new byte[] { 27 }); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文