2

我正在使用 EPL 从 Zebra 打印机(更具体地说是 LP 2844)直接打印条形码。我遇到的问题是我无法控制条形码的物理长度。

例如,这2行代码会打印2个不同长度的条码,即使窄条宽度、宽条宽度和内容长度设置相同。

B134,308,0,1,4,12,160,B,"00G38EX"
B136,540,0,1,4,12,160,B,"0086150" 

我知道输入内容在这里很重要,但我无法弄清楚它是如何工作的。有没有办法将条形码的长度设置为固定或至少使其可控,即:给定已知的输入内容,我知道我应该期望物理长度是多少。

4

1 回答 1

3

你是对的 - 它是数据敏感的。

代码 128 有 3 个子字母。设置“A”包含所有 ASCII 控制代码、数字、许多符号和大写字母 (00H..5FH)。设置“B”包含“printables”(符号、数字、双写字母 - 20H..7FH)。代码“C”包含数字对 (00..99)。

起始码选择要使用的字母表,可以通过插入适当的 START-A、START-B 或 START-C 来切换使用中的设置。

遗憾的是,固件不允许强制执行代码(根据文档),并且通过分析要打印的字符串来打印最短的条码。

所以 - 在你的情况下,代码应该是 START-A/0/0/G/3/8/E/X/STOP = 7 个数据元素 START-C/00/86/15/START-A/0/STOP = 5 个数据元素

对于 7 个字符的数据,代码永远不会比第一个长,也不会比第二个短(让我们不要讨论控制字符的可能性......)

选择哪一个取决于要打印的各个序列。我确信它可以解决 - 两位数的序列需要额外的 1 个元素,但可以节省 1 个;4 位数成本 1 但节省 2 - 如果序列位于字符串的一端或另一端。

最好为最长的可能(所有阿尔法)编程并接受压缩作为奖励。

于 2013-07-05T18:00:49.750 回答