0

我编写了标签打印软件(Windows、WPF、C#、.net 4.5),它可以使用 Datamax H-Class 打印机愉快地打印条形码,但在打印以字符开头的条形码时有一个例外C

当我尝试这样做时,条形码会被截断,直到其中的第一个数字字符。

小写c可以正常工作,但是由于我们的一些模型代码确实以 开头C,所以我需要找到一种方法来解决这个问题。

我想一定有某种转义字符允许这样做?但我没有设法通过谷歌找到它。

我也不是 100% 确定这是 code128 问题,它是否与 Datamax H-Class 打印机、Datamax Windows C# SDK 或我们在打印机上使用的 code128 字体有关?

抱歉,细节太模糊了,非常感谢任何有关下一步检查的帮助或建议。

更新

以防万一这有任何用处(我很遗憾地对此表示怀疑),我用来将条形码发送到打印机的代码(在所有条形码字符串不以 开头的情况下成功C)如下:

ParametersDPL paramDPL = new ParametersDPL();

paramDPL.Align = ParametersDPL.Alignment.Left;
paramDPL.Rotate = ParametersDPL.Rotation.Rotate_270;

paramDPL.IsUnicode = false;
paramDPL.TextEncoding = Encoding.ASCII;
paramDPL.WideBarWidth = 7;
paramDPL.NarrowBarWidth = 4;
paramDPL.SymbolHeight = 60;

//if the stockCode starts with 'C' the barcode will be truncated                
docDPL.WriteBarCode("E", String.Format("{0} {1}", stockCode, serialNumber), COL_1, ROW_5, paramDPL);

ParametersDPL对象来自Datamax C# SDK。我可以在代码中看到的唯一可能的问题可能是IsUnicodeorTextEncoding属性的设置,但我已经对它们进行了相当多的试验,但没有任何效果。ParametersDPL似乎也没有其他属性可能是罪魁祸首。

4

1 回答 1

4

我不熟悉 Datamax PCL,但症状表明“C”被用于选择 code128 的子字母“C”。尝试以“A”或“ZB”开头的股票代码并查看“A”或“B”是否消失可能会很有用。如果是这样,那么第一个字符可能被用于选择子字母(“A”是仅大写的 ASCII,“B”是无控制的 ASCII。)

然后,您需要非常仔细地查看 Datamax PCL 格式 - 可能那里有一个(可能是可选的)格式化字符,这使得它对前导字符敏感。也许强制输入一个领先的“B”可以解决这个问题。

于 2014-11-27T23:00:39.517 回答