C# 爱普生打印机利用code128字体打印条形码时怎么选择code128字体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 爱普生打印机利用code128字体打印条形码时怎么选择code128字体相关的知识,希望对你有一定的参考价值。

如题
我在网上找到LPTControls并利用到项目中,
我下载了一个code128的条码字体 code128.ttf 并添加到了windows/font下

其中有这样一段代码

//1B 4D 选择字体 03为汉字字体
temp1 = new byte[] 0x1B, 0x4D, 0x03 ;
我的问题是:
现在我需要打印条形码, 我如何设置打印的字体为 “Code 128” 呢?
或者用下面这种方法:
//.os.write(0x1d);
//2.os.write(0x68);
//3.os.write(120);
//4.os.write(0x1d);
//5.os.write(0x48);
//6.os.write(0x01);
//7.os.write(0x1d);
//8.os.write(0x6B);
//9.os.write(0x02);
//10.os.write("091955826335".getBytes()); //条形码数字
//11.ow.write(0x00);
但是这个是生成12位的条码, 我需要生成20位条码。
或者高人告诉下1-10 是什么意思?
..
..
..没人吗?

参考技术A 请您先确定您打印机的型号,参照用户指南排除问题,您可登陆以下爱普生网站选择此产品类型和型号下载操作手册:http://www.epson.com.cn/apps/tech_support/guidedrive.aspx

若以上方案仍无法解决您的问题,请您登陆爱普生官网的“在线工程师”:http://219.232.55.146/portal/epson,实时与爱普生工程师在线交流,以便问题得到及时解决。(爱普生“在线工程师”服务时间:周一至周五9:00-18:00)

打印以字符“C”开头的 code128 条码

【中文标题】打印以字符“C”开头的 code128 条码【英文标题】:Print a code128 barcode starting with the character 'C' 【发布时间】:2015-01-26 07:29:27 【问题描述】:

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

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

小写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。我在代码中看到的唯一可能的问题可能是IsUnicodeTextEncoding 属性的设置,但我已经对它们进行了相当多的试验,但没有任何效果。 ParametersDPL 上的其他属性似乎都不是罪魁祸首。

【问题讨论】:

你能和我们分享一些你的代码吗?这是一种形式的抽象问题 你去 ymz。遗憾的是,我认为实际打印代码没有任何问题,因为它在所有其他情况下都能正常工作。 “stockCode”背后有什么逻辑吗?还是只是一个带有字母的字符/字符串? @Ted 感谢您的回复,老实说,对于 7 年前提出的问题,我并没有太大希望得到回复。如果还有其他需要帮助的地方,我会尽快回复您。 @ArchanJoshi 我不知道我能帮上多少忙,因为我可能已经 7 年没有做很多 DPL 工作了!很高兴听到您解决了问题 - 您也应该回答自己的问题,以帮助他人,并在未来提醒自己! 【参考方案1】:

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

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

【讨论】:

马古先生,您说的完全正确,人中的王子,非常感谢您!只需在条形码字符串上添加 A、B 或 C 前缀就可以作为字符集选择器(我想说的是 Datamax SDK 的一个有点狡猾的方法),所以我现在添加了一个 B(不是 'ZB'!那我猜是错字吗?)到每个条形码的开头,所有股票代码都在愉快地打印。

以上是关于C# 爱普生打印机利用code128字体打印条形码时怎么选择code128字体的主要内容,如果未能解决你的问题,请参考以下文章

在报表中使用Code128字体 打印条码,怎么才能实现

打印以字符“C”开头的 code128 条码

Crystal Reports Code 128 条码打印形状而不是数字

在 PHP 中创建 code128 条形码,使用字体而不是将其呈现为图像

在使用字体(不是图像也不是 javascript)的网页中显示 Code128

PHP Regex 在字符串中插入特定字符串以打印 code128 条形码