【问题标题】:C# - send KPL commands to zebra ttp 2010 printer via serial portC# - 通过串口向 zebra ttp 2010 打印机发送 KPL 命令
【发布时间】:2017-01-03 18:40:41
【问题描述】:

这是我第一次在 stackoverflow 上发帖。

我正在运行一个 Windows 窗体 (C#) 应用程序,该应用程序需要连接到 zebra ttp 2010 打印机所连接的串行端口(在本例中为 COM1),并发送一些打印机可以理解的 KPL 命令并打印我的内容想。

目前我正在做这个非常简单的代码:

serialPort1.PortName = "COM1";
serialPort1.Open();

//command that prints a EAN barcode
//i have tested the command using the zebra toolbox.exe and works as intended
string str = "<ESC>BS<0><0><h 48><0><0><00><0><h  40><0><2><02><ESC>BW<00>123456789<00><LF><RS>";

serialPort1.Write(str);
serialPort1.Close();

当我执行此代码时,没有打印任何内容,但如果我按下打印机侧面的物理“进纸”按钮,弹出的纸张中会写入我的字符串,而不是命令的结果。

我也尝试将字符串转换为字节数组,但最终结果是一样的。

byte[] toBytes = Encoding.ASCII.GetBytes(str);
serialPort1.Write(toBytes, 0, toBytes.Length);
serialPort1.Close();

因此,我不仅无法让打印机打印接收到的数据,而且打印机也没有将数据视为 KPL 命令。

有人知道我做错了什么,我该如何解决?

****编辑***** 我弄清楚我做错了什么。我不能简单地将我的文本转换为字节数组,因为这不会将 KPL 命令(例如"&lt;ESC&gt;")转换为其十六进制表示。

通过嗅探 com 端口,我发现例如换行命令由“0A”表示 所以当我这样做时:

byte[] toSend = { 0x1B, 0x74, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x50, 0x61, 0x72, 0x6B, 0x4E, 0x61, 0x6D, 0x65, 0x00, 0x0A, 0x0A, 0x0D, 0x1E };
sp.Write(toSend, 0, toSend.Length);

打印机自动开始打印

【问题讨论】:

    标签: c# printing serial-port zebra-printers


    【解决方案1】:

    听起来好像有最低门票长度要求。热敏打印机通常具有要打印的最小行数或在执行呈现和/或剪切之前超时。 ESC/POS(您正在使用的协议)有一堆命令,可让您控制何时以及如何出示票证。供应商之间存在一些差异,但您的打印机很可能至少支持其中一些命令。

    <ESC> |#fP - Feed # of lines and cut paper
    <ESC> |#lF - Feed # of line and do not cut
    

    请参阅本手册第 29 页https://www.zebra.com/content/dam/zebra/manuals/en-us/printer/kiosk-opos-driverguide-en.pdf

    【讨论】:

    • 即使我发送更多要打印的行,除非我按下进纸按钮,否则打印机仍然不会打印任何内容。此外,如果我在发送命令后按下该按钮,打印机将打印命令而不是结果。 (例如,打印机打印:“tParkName”而不是:“ParkName”
    • 我发现我做错了什么,我不能简单地使用 GetBytes() 将命令转换为字节,因为这只会将每个字符转换为其十六进制表示。通过做一个简单的 byte[] toSend = { 0x0A, 0x0D, 0x1E }; sp.Write(toSend, 0, toSend.Length);我已经设法让打印机在接收数据时自动打印
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2019-01-27
    • 1970-01-01
    相关资源
    最近更新 更多