2013-07-04 66 views
2

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

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

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

我知道输入内容在这里很重要,但我不知道它是如何工作的。是否有任何方法来设置条码的长度是固定的,或至少使其可控制,即:给定一个已知的输入内容,我知道我应该期望的物理长度。

回答

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 - 如果序列位于字符串的另一端或另一端。

最好的程序为最长的可能(全alphas)和接受压缩作为奖金。