我需要打印一个通过Web服务返回给我的图像(数据以RAW形式返回),我不能在生活中找出如何使用EPL将图形打印到标签上。
EPL手册将Graphic Write指令定义为:
GWp1, p2, p3, p4, DATA
所有参数都返回给我,所以我不必担心计算高度,宽度等,但我的问题是我不知道如何格式化数据。
手册说DATA应该是
没有图形文件格式的原始二进制数据。数据必须以字节为单位。
我已经尝试传递二进制字符串和十六进制字符串,但似乎没有任何效果。没有关于如何在EPL手册中使用此命令的示例,并且在线搜索数小时之后,我无法找到如何使用该命令的单个示例(例如,我可以复制和粘贴发送的示例EPL命令到打印机)。
有没有人知道如何使用此命令?你能给我一个例子吗? (举例来说,我不是指框架,代码等,我的意思只是简单的EPL命令)。
答案 0 :(得分:2)
我可以确认数据是原始的,未压缩的二进制文件。它也是反转的 - 也就是说,0位打印为黑色,至少在我的UPS固件LP-2844上打印。我不知道为什么Zebra的所有例子都将数据显示为十六进制表示。
值得注意的是,如果您在端口9100上向它们吐出数据,大多数打印服务器(HP Jetdirect,Lantronix LPS1-T,几乎可以肯定是Zebra内置和外部打印服务器)将形成与打印机的二进制连接(以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甚至知道如何抖动或调整大小)。
通过将标签优化为许多较小的位图(以及水平和垂直线段,以及可能填充的矩形块),可以加快成像时间。这不是一个非常难的优化,因为图像是单位黑白位图,代码相当简单。不过,我不知道它是否会加速它。
更现代的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-style)。
答案 1 :(得分:1)
也许这会help,它有例子(并纠正了手册中的错误)。此外,使用GM命令可能更容易,每次只删除图像(请参阅here for a stackexhange相关问题)。
话虽这么说,我从未让我的Eltrons成功打印图像(但我的工作并不需要它)。
祝你好运!!编辑:这是另一个带有Perl代码示例的link。他们的目标是汉字,但展示如何打印大波浪图像(奇怪的是日文)。
答案 2 :(得分:0)
我发现无法使用ASCII字符将图形发送到带有EPL的Zebra打印机。实际上必须将数据作为RAW数据发送。因此,例如,您无法使用Zebra Setup Utilities将图形发送到打印机,也无法通过任何其他方式将文件直接通过打印机从文件中写入。
答案 3 :(得分:0)
我发现的唯一方法是将标签创建为图像,并通过应用程序中的打印命令将该图像发送到打印机。