2011-12-15 71 views
5

我一直在寻找解决方案,迄今为止我认为我的项目最好的解决方案是使用免费的Code 39字体。但是,我试过打印一些样品,而我的条码扫描仪无法读取它们。条码(code 39)代

我研究了一点,并偶然发现this

我打印使用该库的Code 39条形码,它工作得很好,扫描仪能够读取它们。

问题是,库是用C#编写的,但不是用于ASP.net。我尝试过使用代码,但对于我的基础知识来说太复杂了。该库代码中包含许多功能,并且有很多其他条形码类型,这使我很难分析。

是否有其他方法可以生成Code 39条形码? codeproject中的库似乎对我的需求有点复杂。

+3

你确定问题是与发生器?条形码扫描器必须进行编程才能接受不同的条形码类型,除此之外,读取条形码的能力取决于打印质量,并确保如果图像大小调整,则按比例进行。有一次,我们在线提供的优惠券有一个标准的UPC条形码,但许多客户的打印机设置的质量很低,相同的条形码只有50%的时间工作,所以我们放弃在我们的网站上使用它们。我们无法控制客户端的计算机/打印机设置。 – David 2011-12-15 15:53:06

+0

嗨,我也试过使用几个移动条形码阅读器应用程序,他们仍然无法阅读由免费code39字体生成的条形码。 (http://www.squaregear.net/fonts/free3of9.shtml)但是,当我尝试使用此库生成条形码(http://www.codeproject.com/KB/graphics/BarcodeLibrary.aspx)时,阅读器应用程序可以阅读它。 – 2011-12-19 03:53:14

回答

2

首先,你说这个库不是为ASP.NET编写的,但是如果你可以用它生成图像,那么最简单的方法是编写一个HttpHandler,它位于库的顶端,并返回生成的图像到浏览器。如果它是一个.NET库,我不认为有任何理由不应该这样做。

话虽这么说,有几件事情看出来产生Code39条形码时:

  1. 你产生一个有效的39码条码(见其他答案,一个39码的条码应该开始与*结束) ?
  2. 您打印的条码是否足够清晰以供扫描?

对于#1,我会检查以确保从Code39字体打印的图像与库中的图像相同。如果是,那么图像质量可能是问题。

就#2而言,我已经成功地使用了一个免费的Code 39字体和GDI +来生成条形码图像,然后在HTML页面中显示用于打印的条形码图像。我试图扫描打印的条形码图像时碰到的一个问题是,图像不够锐利(条形码行的边缘模糊)并且无法被扫描仪读取。

我得到低质量图像的方式是生成一个大的Code39条形码图像(比如说1000 x 400),然后在显示该条形码的<img>标签上,我会将宽度设置得小一些,比如说(200像素或2.0英寸)。我一定会只设置宽度,高度将与图像成比例地缩放。这会在打印时有效地增加图像的DPI,使我们能够生成易于扫描的条形码图像(尤其是使用激光打印机进行打印时)。

编辑

差点忘了,当产生这些条形码是总是打印你的条形编码的条形码图像下面有什么用另外一个很好的做法。这是您的故障安全,以防条形码图像因任何原因无法扫描。如果您查看任何标准的UPC符号,可以看到这个示例。底部的数字正好是扫描时条形码的读数。

5

条形码扫描仪需要您的代码39条形码前缀和后缀星号读取。例如:*12345*