要生产10位以上的条码,单偶不定。用code128 A,B字符集生成的条码太长。为什么专业的条码打印软件生成的条码不计较短,有人说用的是code128 auto. 想问code128 auto用的什么字符集,怎么生成的。求代码或算法。
解决方案 »
- 【求助】新手入门问题
- 生成好的程序在本机可以运行,但到别的机器就偶尔出错退出,求解!!!
- 请问如何实现把一个窗体最小化到任务栏中后显示另外一个窗体?
- 如何屏蔽掉打印文件进程条
- 問一個在WINFORM下的問題,有沒有辦法讓datagrid本來是縱向顯示,改為橫向顯示?或者有什麼控件可以做到這點
- 请教一个c#读取Access数据库中存储的图片的问题.盼高手指教!!!!!!!!!!!!
- 急!!!在.net中怎样把一个Image存入数据库中
- 求助!!!C# TcpClient的getstream() 怎么读不到数据啊???
- 请各位同行大哥帮助:关于dataGrid TableStyles求助
- 在类中如何调用某按钮的单击事件??
- C# 串口异常操作导致“com拒绝访问”
- iis感觉不稳定,有时候部份内容打不开。
注意:必须在 控制面板--字体 中 有code 128 的文件
CODE128B: 标准数字和字母, 小写字母, 特殊字符
CODE128C: [00]-[99]的数字对集合, 共100个(只能包含数字,一个条码字符代表两位数字)
CODE128AUTO:会自动在几个代码集中切换。由于Code128本身数据和条码图像是一对多的关系, 甚至Code128A-C可以同时存在于一个条码里面, 因此从标准上是不可能区分的. 如果要区分的话, 我觉得通过肉眼判断条码的起始符更简单一点。起始码
编码类别 逻辑型态 相对值
CODE A 11010000100 103
CODE B 11010010000 104
CODE C 11010011100 105
{
try
{
Regex maRegexpChaine = new Regex("^[a-zA-Z0-9 ]+$");
Regex maRegexpNumber = new Regex("^[0-9]+$");
int Cheksum = 0;
string resultstring = ""; if (maRegexpNumber.IsMatch(BarCode) && ((BarCode.Length % 2) == 0))
{
resultstring = ((char)8250).ToString();
string incoming = BarCode;
Byte[] MesCode = new byte[incoming.Length / 2];
for (int j = 0; j < MesCode.Length; j++)
{
MesCode[j] = Convert.ToByte(incoming.Substring(j * 2, 2));
} Cheksum = 105; for (int i = 0; i < MesCode.Length; i++)
{
Cheksum += MesCode[i] * (i + 1);
switch (MesCode[i])
{
case 95: resultstring = resultstring + ((char)8216); break;
case 96: resultstring = resultstring + ((char)8217); break;
case 97: resultstring = resultstring + ((char)8220); break;
case 98: resultstring = resultstring + ((char)8221); break;
case 99: resultstring = resultstring + ((char)8226); break;
case 00: resultstring = resultstring + ((char)8364); break;
default: resultstring = resultstring + (char)(MesCode[i] + 32); break;
}
}
}
else if (maRegexpChaine.IsMatch(BarCode))
{
resultstring = ((char)353).ToString() + BarCode;
Byte[] MesCode = Encoding.ASCII.GetBytes(resultstring);
Cheksum = 104;
for (int i = 1; i < MesCode.Length; i++)
{
Cheksum += (MesCode[i] - 32) * (i);
}
resultstring = resultstring.Replace(' ', ((char)8364));
} Cheksum = Cheksum % 103; switch (Cheksum)
{
case 95: resultstring = resultstring + ((char)8216); break;
case 96: resultstring = resultstring + ((char)8217); break;
case 97: resultstring = resultstring + ((char)8220); break;
case 98: resultstring = resultstring + ((char)8221); break;
case 99: resultstring = resultstring + ((char)8226); break;
case 00: resultstring = resultstring + ((char)8364); break;
case 100: resultstring = resultstring + ((char)8211); break;
case 101: resultstring = resultstring + ((char)8212); break;
case 102: resultstring = resultstring + ((char)732); break;
default:
resultstring = resultstring + (char)(Cheksum + 32); break;
}
return (resultstring + ((char)339));
}
catch (System.Exception e)
{
throw e;
}
}
http://www.cnblogs.com/liucfy/archive/2009/07/19/1526676.html
1.条码是一维的还是几唯的?
2.使用什么牌子的打码机,Zebra,Marken。
3.项目的目标是面向业务系统还是硬件系统
现在的硬件商简直奸诈,硬件软件都要做。现代物联网领域质量追溯平台使用条形码技术普遍又广泛。我这有成套的打码软件,可以私下联系。
最后,我要是畜生,你他妈畜生不如!
我用code128 B字符集生成的条码图如下:
http://my.csdn.net/my/album/detail/1148585用第三方软件生成的图如下:
http://my.csdn.net/my/album/detail/1148586问题:显然他用的不是code128 A,B,C中的任何一个字符集。网上查阅说用的code128 auto,不知道这个怎么实现的。求算法
我用code128 B字符集生成的条码图如下:用第三方软件生成的图如下:问题:显然他用的不是code128 A,B,C中的任何一个字符集。网上查阅说用的code128 auto,不知道这个怎么实现的。求算法
我用code128 B字符集生成的条码图如下:用第三方软件生成的图如下:
问题:显然他用的不是code128 A,B,C中的任何一个字符集。网上查阅说用的code128 auto,不知道这个怎么实现的。求算法
http://www.codeproject.com/Articles/20823/Barcode-Image-Generation-Library这个我在实际项目中用过。很好用。如果你在使用中遇到问题,我可以进行技术支持不是为了娶你妹子!我有家室了,我们家夫人不会批准这件事的...
只是为了不让你的大家闺秀妹妹落入众狼之手...
首先要区别code128三种形式的区别,code 128A不能打印小写的字母,code 128B是默认的,128个ASCII都可以打印,code 128C只能打印数字,A,B的长度与C不一样长,code 128码总长度的计算公式为:
L=(11C+35)X(字母数字)
L=(5.5C+35)X(仅打印数字使用code 128c)L=code128条形码的宽度(不包括静止区)
C=数据字符,代码字符和转移字符的数量
X=X-尺寸(也就是每个条的尺寸)
上面的单位都为英寸code 128 auto应该是打印内容中出现了都是数字就自动使用code 128C,其他的默认使用code 128B,具体也不清楚,要自己试一下各种情况,bartender中可以指定打印内容数字用code 128C,字母用Code 128B,使用shift转义。