码迷,mamicode.com
首页 > 其他好文 > 详细

利用Code128字体将文本转换为code128条形码

时间:2017-10-16 18:01:07      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:strong   copy   相关   直接   static   打印   log   方法   没有   

最近在做仓储的项目,许多的打印文件都包含条形码,之前一直使用C39P24DhTt字体直接转换为39码,但是最近要求使用code128编码格式的条形码。第一个想到的方法是下载一个code128字体,想到后立马动手,结果却大大让人失望,没有一个扫描枪能够识别,没办法,只能想其他的办法了。

  马上想到的是去问度娘,大多数做法是将字符转换为code128的编码,然后画出相应的条码,这个方法是最好的,客户端不需安装任何相关的字体,但是做法却有些复杂。最后找到了一个简单的方式,但是前提是使用者安装了Code128字体,下面是具体的实现代码,供有需要的人参考。

  Code128A

技术分享
public string GetCode128A(string inputData)
        {
            string result = "";
            int checksum = 103;
            int j = 1;
            for (int ii = 0; ii < inputData.Length; ii++)
            {
                if (inputData[ii] >= 32)
                {
                    checksum += (inputData[ii] - 32) * (ii + 1);
                }
                else
                {
                    checksum += (inputData[ii] + 64) * (ii + 1);
                }
            }
            checksum = checksum % 103;
            if (checksum < 95)
            {
                checksum += 32;
            }
            else
            {
                checksum += 100;
            }
            result = Convert.ToChar(203) + inputData.ToString() + Convert.ToChar(checksum) + Convert.ToChar(206);
            return result;
        }
技术分享

  Code128B

技术分享
public string GetCode128B(string inputData)
        {
            string result = "";
            int checksum = 104;
            int j = 1;
            for (int ii = 0; ii < inputData.Length; ii++)
            {
                if (inputData[ii] >= 32)
                {
                    checksum += (inputData[ii] - 32) * (ii + 1);
                }
                else
                {
                    checksum += (inputData[ii] + 64) * (ii + 1);
                }
            }
            checksum = checksum % 103;
            if (checksum < 95)
            {
                checksum += 32;
            }
            else
            {
                checksum += 100;
            }
            result = Convert.ToChar(204) + inputData.ToString() + Convert.ToChar(checksum) + Convert.ToChar(206);
            return result;
        }
技术分享

  Code128C

技术分享
public static string GetCode128C(string inputData)
        {
            string result = "";
            int checksum = 105;
            int j = 1;
            for (int ii = 0; ii < inputData.Length; ii++)
            {
                if (ii % 2 == 0)
                {
                    checksum += Convert.ToInt32(inputData.Substring(ii, 2)) * j;
                    if (Convert.ToInt32(inputData.Substring(ii, 2)) < 95)
                    {
                        result += Convert.ToChar(Convert.ToInt32(inputData.Substring(ii, 2)) + 32);
                    }
                    else
                    {
                        result += Convert.ToChar(Convert.ToInt32(inputData.Substring(ii, 2)) + 100);
                    }
                    j++;
                }
                ii++;
            }
            checksum = checksum % 103;
            if (checksum < 95)
            {
                checksum += 32;
            }
            else
            {
                checksum += 100;
            }
            result = Convert.ToChar(205) + result + Convert.ToChar(checksum) + Convert.ToChar(206);
            return result;
        }
技术分享

利用Code128字体将文本转换为code128条形码

标签:strong   copy   相关   直接   static   打印   log   方法   没有   

原文地址:http://www.cnblogs.com/qq458978/p/7677832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!