4

我需要打印通过 Web 服务返回给我的图像(数据以 RAW 格式返回),但我终其一生都无法弄清楚如何使用 EPL 将图形打印到标签上。

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

GWp1, p2, p3, p4, DATA

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

手册说数据应该是

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

我试过传递一个二进制字符串和一个十六进制字符串,但似乎没有任何效果。在 EPL 手册中没有关于如何使用此命令的示例,经过数小时的在线搜索后,我无法找到如何使用该命令的单个示例(即我可以复制和粘贴以发送到的示例 EPL 命令打印机)。

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

4

4 回答 4

3

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

值得注意的是,如果您在端口 9100 上向打印机发送数据(使用 netcat例子):

nc printer_hostname_or_ip_address 9100 < test_file.txt

您不会从打印机那里得到任何反馈,除了标签是否已打印。

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

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

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

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

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

所有换行符都是 0x0a(unix 风格)。

于 2013-02-14T19:26:26.393 回答
1

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

话虽如此,我从来没有让我的 Eltron 成功打印图像(但我的工作不需要它)。

祝你好运!!

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

于 2012-09-27T20:49:05.380 回答
0

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

于 2012-10-03T00:44:17.993 回答
0

我发现解决此问题的唯一方法是将标签创建为图像,然后通过应用程序中的打印命令将该图像发送到打印机。

于 2013-09-16T21:02:03.767 回答