使用GW EPL命令将图形打印到Zebra LP2844



我需要打印一张通过web服务返回给我的图像(数据以RAW形式返回),我一辈子都无法想出如何用EPL将图形打印到标签上。

EPL手册将图形写入指令定义为:

GWp1, p2, p3, p4, DATA

所有的参数都会返回给我,所以我不必担心计算高度、宽度等,但我的问题是我不知道如何格式化DATA。

手册上说DATA应该是

不带图形文件格式的原始二进制数据。数据必须以字节为单位。

我尝试过传递一个二进制字符串和一个十六进制字符串,但似乎什么都不起作用。EPL手册中没有关于如何使用此命令的示例,经过数小时的在线搜索,我找不到一个关于如何使用该命令的示例(即,我可以复制并粘贴到打印机的EPL命令示例)。

有人知道如何使用这个命令吗?你能给我举个例子吗?(举个例子,我指的不是框架、代码等,我的意思只是简单的EPL命令)。

我可以确认数据是原始的、未压缩的二进制文件。它也是反转的——也就是说,0位打印为黑色,至少在我的UPS固件LP-2844上是这样。我不知道为什么Zebra中的所有示例都显示数据编码为十六进制表示。

值得注意的是,如果您在端口9100(例如使用netcat)向大多数打印服务器(HP Jetdirect、Lantronicx LPS1-T,以及几乎可以肯定的Zebra内置和外部打印服务器)吐出数据,它们将与打印机形成二进制连接:

nc printer_hostname_or_ip_address 9100 < test_file.txt

除了标签是否已打印外,打印机不会给您任何反馈。

我的LP-2844(UPS固件)打印机大约需要5-6秒才能将包含816宽x 1218高下载位图的标签打印到4"宽x 6"高的标签上。这似乎都是成像时间:一次发送三个标签的速度并不快,网络连接(通过Lantronicx LPS1-T)一直保持打开状态,直到打印出最终标签。该图像是打印机的原生分辨率(203点/英寸),并且没有抖动或调整大小(我认为EPL2甚至不知道如何抖动或调整尺寸)。

通过将标签优化为许多较小的位图(以及水平和垂直线段,可能填充在矩形块中),可以加快成像时间。这不是一个很难的优化,因为图像是一个单比特黑白位图,代码会相当简单。不过,我不知道它是否真的会加快速度。

一款更现代的Zebra GX420,运行带有内置以太网端口的ZPL(在线500美元),可以在1-2秒内打印出相同的标签(基本上使用相同的图形下载编码)。

顺便说一句,由于我还没有真正回答这个问题,因此它的原始EPL代码是:

(a blank line)
N
q816
Q1218,20
GW10,10,102,1218,(124236 bytes of inverted bitmap data)
P

所有换行符都是0x0a(unix样式)。

也许这会有所帮助,它有示例(并更正了手册中的错误)。此外,可以更容易地使用GM命令,每次只删除图像(请参阅此处了解与stackexhange相关的问题)。

话虽如此,我从未让我的Eltrons成功打印过图像(但我的工作并不需要它)。

祝你好运!!

EDIT:这是另一个带有示例Perl代码的链接。他们的目标是汉字,但展示了如何打印巨浪图像(奇怪的是,它是日本的)。

我发现不可能使用ASCII字符将图形发送到带有EPL的Zebra打印机。数据实际上必须作为RAW数据发送。因此,例如,您不能使用Zebra设置实用程序或通过任何其他无法直接通过打印机从文件写入RAW数据的方式将图形发送到打印机。

我找到的唯一方法是将标签创建为图像,并通过应用程序中的打印命令将该图像发送到打印机。

最新更新