条码扫描问题 - 扫描枪不能识别

时间:2021-04-12 11:43:35
 C#  做的Web 项目 通过下面方法生成条码 :


public static string EntryString(object codes)
    {
    string strTmp = codes.ToString();
        string code = strTmp;
        strTmp = strTmp.ToLower();
        int height = 25;
        int width = 1;
        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;
        //}
        return strTmp;
}


扫描枪说是 39 码的 。     object codes  -  我传入的参数是这个 ,我在前后都加了 “*”
但是还是不能正常扫描出来 。

请问一下这种方式,是否能正常扫描出来?  这个是从网上找到的 。
还有就是如果这个方法可行,那我怎么能生成 128 码的条码。

多谢大虾们指导 。。 

47 个解决方案

#1


还真不太懂,帮顶下.

#2


没有做过
帮顶!

#3


帮顶,之前同事都是通过调用第三放控件,
或者设置条码字体来生成条码,
具体里面的细节还没怎么研究过...

#4


 你直接打印这个strTmp肯定不对,这哪是条码呀,

你得找个第三方控件专门生成条码的。

#5


这个应该不行吧,有条码字体的,生成条码後用再转成图片,这样在web上就可以显示了‧

#6


我这个是在网上找的,  
都说可以打印扫描出来 。。。   555555 。

我好郁闷哦。。   还有人帮我顶么?

#7


帮顶,之前同事都是通过调用第三放控件, 
或者设置条码字体来生成条码, 
具体里面的细节还没怎么研究过...


这个怎么弄阿 ?????  怎么设置条码字体。。 

#8


帮顶,没做过,不过推荐你别这样写,因为有现成的条形码字体,自己掉字体,然后输出啊,这样更好写

#9


学习~

#10


关注。。

#11


这个东东值得关注!!

#12


Mark!

#13


都是高手
我什么时候也能学点呢

#14


关注

#15


值得研究

#16


有没有用报表打印出来!

然后试试?

#17


我也学习下,没有搞过

#18


没有做过
帮顶!

#19


以前做条码的时候是用的一种条码字体Free 3 Of 9
显示的时候是将条码字符放在一对**中间,这样条码枪才可以识别
否则不能识别,不知是否对LZ有用.

#20


这东西怎么扫描     strTmp = strTmp.Replace("0", "_|_|__||_||_|"); 
比例严重错误...

你还是使用条码字体..
如果不使用字体可以参考

http://blog.csdn.net/zgke/archive/2008/12/12/3503845.aspx

#21


学习

#22


友情UP

#23


up

#24


            //我做过这个东西,调用的是office里带的那个控件。可以用网页显示,打印出来可以扫描(我们公司用的128码,开发环境.net2003)
            //网上相关资料挺多的。搂主搜一下就可以了。

#25


以前做过用的是第三方控件

#26


正准备用扫描枪.

#27


没玩过枪!

#28


帮顶,收藏!

#29


.。。code39的条码你只需要用code39字体打印数字,扫描枪就能认识了,怎么会搞的这么麻烦?

当然前后都要加*
比如你用 *123456* 用code39字体打印出来就可以用扫描枪扫了。

#30


http://hi.baidu.com/tdskee/blog/item/f7a9a745f2bca92ecffca3ef.html

#31


帮UP
虽然没用过。。但。。。

#32


up

#33


冷月孤峰     --

没玩过枪 ? 玩过迫击炮没???

楼下的继续帮顶 。

哪个大哥能有个什么列子啥的给我看看阿?  

#34


可以下載條碼字體:比如ean13,code128,code39的很多類型,條碼槍都支持的。
還有就是用一些報表軟體來做,比如:fastreport就比較好,上面集成了條碼的。可以選擇很多類型的條碼。目前最實用的條碼應該是ean13條碼了。下麵這張圖,就是我給我們公司做的貨物標籤。當然我們叫牌仔,用的是ean13條碼:
[img=http://b16.photo.store.qq.com/http_imgload.cgi?/rurl4_b=15089d52f5951e1fc2a517d8965258f646f9abad2b46f8deecb97f3eeffdffc7ff15b1c35cdb0575e31d841780f75ae15b6c04dda39a82599332284402e15ef3a078a1935084fe5283d701d61f02cd95f9285d98][/img]

#35


可能忘了說的是,我上面的這個是c/s的,主要作用是做打印功能的,當然,你既然要掃描,那就肯定要打印出來的。去下載fast report studio 或則fast report for .net,無論是b/s還是c/s都行的。

#36


关注学习

#37


这根本就不是条码吧.....

#38


其实可以自己画图实现的,条码的原理你网上看看,每个数字用白条黑条,宽条窄条表示,都是固定的,code39码应该只能有数字和字母,汉字或者日文都需要转化成图片,另外不知道你要开发成什么样的,如果针对条码打印机的话,专门有打印机指令。如果要用excel打开的话,只需要在机器上安装code39字体,然后每个条码头尾家*。如果直接打印的话,建议还是自己画图或者用第三方控件。

#39


学习中

#40


我顶啊 。我顶我自己    ~~~  ,问题还是没解决 

我现在想要的就是  :

  我做的一个 Web 系统, 订单号比如是(1122334455),然后把数字变成条码显示在WEB页面上,页面下面
有打印功能,打印到 A4 纸上,然后扫描出来就可以了。。

哪个大哥有过这方面的例子啊 ??    
完整一点的例子,, 如果真的能帮我,  我不给你分, 这里的分没用, 你把卡号给我 ,我直接酬谢。

#41


使用.net里面的条码。

#42


我顶啊。 这里有没有人做过这个功能啊  ???? 

#43


从没有听说过扫描枪还要用第三方控件,扫描枪用的是键盘口.

如果有问题,要么是 枪的问题,要么是条码的问题.

#44


应该是字体问题

#45


......................

我就不信CSDN 里面没有人做过这个功能???

B/S的系统,ASP页面 ,我想把一串数字转换成条码打印到 A4 纸上,

扫描枪能扫描出来就可以 。 我要源代码, 

谁能帮我解决这个问题 , 直接汇款给你 。 

#46


引用 43 楼 wqzone 的回复:
从没有听说过扫描枪还要用第三方控件,扫描枪用的是键盘口. 

如果有问题,要么是 枪的问题,要么是条码的问题.


对,条形码扫描上去和按键是一样的,我上学时见租书软件就是那样。

#47


最好用第三方专业的条码生成控件,我怎么看你那代码也生不成条码---

#1


还真不太懂,帮顶下.

#2


没有做过
帮顶!

#3


帮顶,之前同事都是通过调用第三放控件,
或者设置条码字体来生成条码,
具体里面的细节还没怎么研究过...

#4


 你直接打印这个strTmp肯定不对,这哪是条码呀,

你得找个第三方控件专门生成条码的。

#5


这个应该不行吧,有条码字体的,生成条码後用再转成图片,这样在web上就可以显示了‧

#6


我这个是在网上找的,  
都说可以打印扫描出来 。。。   555555 。

我好郁闷哦。。   还有人帮我顶么?

#7


帮顶,之前同事都是通过调用第三放控件, 
或者设置条码字体来生成条码, 
具体里面的细节还没怎么研究过...


这个怎么弄阿 ?????  怎么设置条码字体。。 

#8


帮顶,没做过,不过推荐你别这样写,因为有现成的条形码字体,自己掉字体,然后输出啊,这样更好写

#9


学习~

#10


关注。。

#11


这个东东值得关注!!

#12


Mark!

#13


都是高手
我什么时候也能学点呢

#14


关注

#15


值得研究

#16


有没有用报表打印出来!

然后试试?

#17


我也学习下,没有搞过

#18


没有做过
帮顶!

#19


以前做条码的时候是用的一种条码字体Free 3 Of 9
显示的时候是将条码字符放在一对**中间,这样条码枪才可以识别
否则不能识别,不知是否对LZ有用.

#20


这东西怎么扫描     strTmp = strTmp.Replace("0", "_|_|__||_||_|"); 
比例严重错误...

你还是使用条码字体..
如果不使用字体可以参考

http://blog.csdn.net/zgke/archive/2008/12/12/3503845.aspx

#21


学习

#22


友情UP

#23


up

#24


            //我做过这个东西,调用的是office里带的那个控件。可以用网页显示,打印出来可以扫描(我们公司用的128码,开发环境.net2003)
            //网上相关资料挺多的。搂主搜一下就可以了。

#25


以前做过用的是第三方控件

#26


正准备用扫描枪.

#27


没玩过枪!

#28


帮顶,收藏!

#29


.。。code39的条码你只需要用code39字体打印数字,扫描枪就能认识了,怎么会搞的这么麻烦?

当然前后都要加*
比如你用 *123456* 用code39字体打印出来就可以用扫描枪扫了。

#30


http://hi.baidu.com/tdskee/blog/item/f7a9a745f2bca92ecffca3ef.html

#31


帮UP
虽然没用过。。但。。。

#32


up

#33


冷月孤峰     --

没玩过枪 ? 玩过迫击炮没???

楼下的继续帮顶 。

哪个大哥能有个什么列子啥的给我看看阿?  

#34


可以下載條碼字體:比如ean13,code128,code39的很多類型,條碼槍都支持的。
還有就是用一些報表軟體來做,比如:fastreport就比較好,上面集成了條碼的。可以選擇很多類型的條碼。目前最實用的條碼應該是ean13條碼了。下麵這張圖,就是我給我們公司做的貨物標籤。當然我們叫牌仔,用的是ean13條碼:
[img=http://b16.photo.store.qq.com/http_imgload.cgi?/rurl4_b=15089d52f5951e1fc2a517d8965258f646f9abad2b46f8deecb97f3eeffdffc7ff15b1c35cdb0575e31d841780f75ae15b6c04dda39a82599332284402e15ef3a078a1935084fe5283d701d61f02cd95f9285d98][/img]

#35


可能忘了說的是,我上面的這個是c/s的,主要作用是做打印功能的,當然,你既然要掃描,那就肯定要打印出來的。去下載fast report studio 或則fast report for .net,無論是b/s還是c/s都行的。

#36


关注学习

#37


这根本就不是条码吧.....

#38


其实可以自己画图实现的,条码的原理你网上看看,每个数字用白条黑条,宽条窄条表示,都是固定的,code39码应该只能有数字和字母,汉字或者日文都需要转化成图片,另外不知道你要开发成什么样的,如果针对条码打印机的话,专门有打印机指令。如果要用excel打开的话,只需要在机器上安装code39字体,然后每个条码头尾家*。如果直接打印的话,建议还是自己画图或者用第三方控件。

#39


学习中

#40


我顶啊 。我顶我自己    ~~~  ,问题还是没解决 

我现在想要的就是  :

  我做的一个 Web 系统, 订单号比如是(1122334455),然后把数字变成条码显示在WEB页面上,页面下面
有打印功能,打印到 A4 纸上,然后扫描出来就可以了。。

哪个大哥有过这方面的例子啊 ??    
完整一点的例子,, 如果真的能帮我,  我不给你分, 这里的分没用, 你把卡号给我 ,我直接酬谢。

#41


使用.net里面的条码。

#42


我顶啊。 这里有没有人做过这个功能啊  ???? 

#43


从没有听说过扫描枪还要用第三方控件,扫描枪用的是键盘口.

如果有问题,要么是 枪的问题,要么是条码的问题.

#44


应该是字体问题

#45


......................

我就不信CSDN 里面没有人做过这个功能???

B/S的系统,ASP页面 ,我想把一串数字转换成条码打印到 A4 纸上,

扫描枪能扫描出来就可以 。 我要源代码, 

谁能帮我解决这个问题 , 直接汇款给你 。 

#46


引用 43 楼 wqzone 的回复:
从没有听说过扫描枪还要用第三方控件,扫描枪用的是键盘口. 

如果有问题,要么是 枪的问题,要么是条码的问题.


对,条形码扫描上去和按键是一样的,我上学时见租书软件就是那样。

#47


最好用第三方专业的条码生成控件,我怎么看你那代码也生不成条码---