用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c#代码库

128条形码计算,利用Code 128字体实现条码打印

2013-11-28 作者: ExDevilLee举报

[c#]代码库

// 此方法利用Code 128字体实现条码打印,所以需要提前安装Code 128字体
//下载地址:http://pan.baidu.com/share/link?shareid=1787017019&uk=2382364834

        /// <summary>
        /// 获取128条码数据
        /// </summary>
        private string Get128CodeString(string inputData)
        {
            string result;
            //计算校验位
            int checksum = 104;
            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;
        }

        /// <summary>
        /// 打印条形码
        /// </summary>
        public void PrintBarCode()
        {
            PrintDocument printDoc = new PrintDocument();
            StandardPrintController controler = new StandardPrintController();

            printDoc.PrintPage += new PrintPageEventHandler(this.PrintCustom);
            printDoc.PrintController = controler;
            printDoc.Print();
        }

        /// <summary>
        /// 事件:打印设置
        /// </summary>
        public void PrintCustom(Object Sender, PrintPageEventArgs e)
        {
            Font ft1 = new System.Drawing.Font("Times New Roman", 18, FontStyle.Regular, GraphicsUnit.World);
            Font ft2 = new System.Drawing.Font("Code 128", 64, FontStyle.Regular, GraphicsUnit.World);
            Brush br = new SolidBrush(Color.Black);
            Margins margins = new Margins(50, 50, 50, 145);

            e.PageSettings.Margins = margins;
            e.Graphics.DrawString(this.Get128CodeString(m_InputString), ft2, br, 50, -3);
            e.Graphics.DrawString(this.m_InputString, ft1, br, 110, 60);
            e.HasMorePages = false;
        }


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...