现在在c#中,要实现条形码的打印功能,请问有什么好的方法吗?我对此一窍不通.有没有具体的代码?谢谢呀.很急用!请各位高手帮忙呀!

解决方案 »

  1.   

    public string bar_code(object str, int ch, int cw, int type_code)
            {
                string strTmp=str.ToString();
                string code=strTmp;
                strTmp=strTmp.ToLower();
                int height=ch;
                int width=cw;
                strTmp=strTmp.Replace("0", "_|_|__||_||_|");;
                strTmp=strTmp.Replace("1", "_||_|__|_|_||");
                strTmp=strTmp.Replace("2", "_|_||__|_|_||");
                strTmp=strTmp.Replace("3", "_||_||__|_|_|");
                strTmp=strTmp.Replace("4", "_|_|__||_|_||");
                strTmp=strTmp.Replace("5", "_||_|__||_|_|");
                strTmp=strTmp.Replace("7", "_|_|__|_||_||");
                strTmp=strTmp.Replace("6", "_|_||__||_|_|");
                strTmp=strTmp.Replace("8", "_||_|__|_||_|");
                strTmp=strTmp.Replace("9", "_|_||__|_||_|");
                strTmp=strTmp.Replace("a", "_||_|_|__|_||");
                strTmp=strTmp.Replace("b", "_|_||_|__|_||");
                strTmp=strTmp.Replace("c", "_||_||_|__|_|");
                strTmp=strTmp.Replace("d", "_|_|_||__|_||");
                strTmp=strTmp.Replace("e", "_||_|_||__|_|");
                strTmp=strTmp.Replace("f", "_|_||_||__|_|");
                strTmp=strTmp.Replace("g", "_|_|_|__||_||");
                strTmp=strTmp.Replace("h", "_||_|_|__||_|");
                strTmp=strTmp.Replace("i", "_|_||_|__||_|");
                strTmp=strTmp.Replace("j", "_|_|_||__||_|");
                strTmp=strTmp.Replace("k", "_||_|_|_|__||");
                strTmp=strTmp.Replace("l", "_|_||_|_|__||");
                strTmp=strTmp.Replace("m", "_||_||_|_|__|");
                strTmp=strTmp.Replace("n", "_|_|_||_|__||");
                strTmp=strTmp.Replace("o", "_||_|_||_|__|");
                strTmp=strTmp.Replace("p", "_|_||_||_|__|");
                strTmp=strTmp.Replace("r", "_||_|_|_||__|");
                strTmp=strTmp.Replace("q", "_|_|_|_||__||");
                strTmp=strTmp.Replace("s", "_|_||_|_||__|");
                strTmp=strTmp.Replace("t", "_|_|_||_||__|");
                strTmp=strTmp.Replace("u", "_||__|_|_|_||");
                strTmp=strTmp.Replace("v", "_|__||_|_|_||");
                strTmp=strTmp.Replace("w", "_||__||_|_|_|");
                strTmp=strTmp.Replace("x", "_|__|_||_|_||");
                strTmp=strTmp.Replace("y", "_||__|_||_|_|");
                strTmp=strTmp.Replace("z", "_|__||_||_|_|");
                strTmp=strTmp.Replace("-", "_|__|_|_||_||");
                strTmp=strTmp.Replace("*", "_|__|_||_||_|");
                strTmp=strTmp.Replace("/", "_|__|__|_|__|");
                strTmp=strTmp.Replace("%", "_|_|__|__|__|");
                strTmp=strTmp.Replace("+", "_|__|_|__|__|");
                strTmp=strTmp.Replace(".", "_||__|_|_||_|");
                strTmp=strTmp.Replace("_", "<span style='height:"+height+";width:"+width+";background:#FFFFFF;'></span>");
                strTmp=strTmp.Replace("|", "<span style='height:"+height+";width:"+width+";background:#000000;'></span>");
                if(type_code==1)
                {
                    return strTmp+"<BR>"+code;
                }
                else
                {
                    return strTmp;
                }
            }
            #endregion
      

  2.   

    这个问题我好象回答过了,怎么回事?难道没发出去吗?解决思路,
    1。如果是zebra打印机,用zebra的语言来写。
    2。用office带的字库来写,目前支持code39码,和其他少数的字体。
    3。用网上的控件来写,取中间的条码图片,拉长来写。