我希望能够将产品信息存储在 Web 应用程序的数据库中,我认为最好使用条形码作为产品标识符。现在我只想能够将代码的数字表示形式存储在数据库中,所以我需要找出最大长度、格式等......
最终我希望能够将它与条形码阅读器集成。
有没有什么好的资源可以帮助某人开始使用条形码编程?
我希望能够将产品信息存储在 Web 应用程序的数据库中,我认为最好使用条形码作为产品标识符。现在我只想能够将代码的数字表示形式存储在数据库中,所以我需要找出最大长度、格式等......
最终我希望能够将它与条形码阅读器集成。
有没有什么好的资源可以帮助某人开始使用条形码编程?
基于一些条码项目,这里有一个快速的总结。
您的应用程序不需要知道或做任何不同的事情,因为您使用的是条形码。它们只是可能以其他方式打印的数据的表示。符号系统和维度可以在您需要时放在一起的封装抽象层中处理。
符号系统一般由现货需求确定,如客户标准、行业标准等。如果是内部使用,一般认为 Code 39 是一个很好的默认值。
对于打印,可以使用激光打印机、特殊标签纸和可下载字体来满足大多数要求。还可以从许多来源获得专用打印机,包括 Zebra、Intermec 等;但是这些更昂贵,您需要注意要打印的专有(阅读:昂贵)纸张。
字体。Google 通常用于“条形码字体”,但一个方便的替代方案是这个Postscript 条形码生成器,它将在大多数 Postscript 打印机上打印几乎任何尺寸的任何符号系统。
读取条形码。对于使用 PC 输入设备读取条形码,通常这是通过设备驱动程序实现的,提供您正常的打开/关闭/读取/写入/ioctl 等效项,或者作为与实际键盘内联的代理键盘,因此输入显示为击键(可选带有终端换行符。)非PC设备显然有自己的编程要求。
我已经完成了大量的条形码工作。
您必须熟悉两个方面。
生成/打印条形码
这将涉及使用特定类型的条形码格式。对于大多数格式而言,Code 128 通常是最常见、最容易阅读的,并且可以打印最小的条形码。要打印 Code 128 格式的条形码,您需要字体、可以购买的库(idautomation 等)等,您将集成到您的软件中以打印条形码。Code 39 也很常见(通常是免费的)。它会打印非常宽的条形码,但随着您要条形码化的数据变得更大。
如果您要打印带有条形码的标签,您可能需要查看 Zebra 打印机。他们有一个优秀的内置编程语言 (ZPL),可以让您本地生成所有类型的条形码——无需购买字体或库。
这里要考虑的重要一点是条形码的可读性。您会发现条形码像字体一样按比例缩放。确保您的条形码可以打印在您的介质上并且可以扫描(不会起皱、折叠或剥落等),这一点非常重要。
阅读/使用条形码
阅读条形码将从某种扫描仪开始。您可以获得能够读取任何类型条码并将解码的条码作为输入传输的条码。因此,如果您在屏幕上选择了一个字段,并扫描了某些内容,则条形码的内容将为您输入到该字段中。
您可以做的另一件事是购买运行 palm OS 或 windows ce/mobile 的移动扫描仪,例如由 symbol、psion teklogix 等制造的扫描仪。这些可以设置为运行用于接收、运输系统的集成软件,该软件将驱动你的工作流程。
通过不重新发明轮子,我发现生活变得轻松多了。我已经使用了上面提到的所有产品,发现它们集成得很好。也有一些很棒的 java 条形码库是免费的,我相信你也会找到一些适用于 .NET 的东西。如果您还有其他问题,请告诉我。
我做过一些使用条形码扫描仪的应用程序,其中大多数不需要任何特殊编程。输入通常看起来与来自键盘的程序完全一样。因此,只需构建您的数据输入表单以接受存储在条形码中的数字等价物,对于大多数扫描仪来说,您就可以了。支持比您最初想象的要容易得多。
另一方面,打印条码稍微复杂一些,通常需要特殊的工具包。有可用的免费字体,但根据您编码的内容,结果可能会受到影响。
如果您使用便宜的条形码阅读器,请使用Code128。它可以对几乎任意长度的数字和/或文本进行编码(仅数字内容在 50% 小条形码中)。
如果您想使用相机/手机进行条形码解码,请使用datamatrix。您可以将大约 1kb 的数据放入数据矩阵条码中。(编辑 2015:二维码似乎会慢慢杀死数据矩阵。所以选择二维码而不是数据矩阵。)
Wikipedia 对条码的主题有很好的报道。
无耻插件:如果您对条形码的编码和解码方式感兴趣,您可能想看看免费的 Python 库huBarcode,它在纯 Python 中实现了最常见的条形码方案。由我公司出版。
读取条码非常简单,因为扫描仪模拟键盘。所以你只需要扫描而不是打字。我们有几个内部网络应用程序,这些应用程序用于仅配备扫描仪和轨迹球的个人电脑 - 根本没有键盘。这种设置不需要特殊的驱动程序。
我为 iPhone Wallet Zero Home Page开发了 Wallet Zero ,它生成的条形码与会员卡上的条形码相匹配。在研究它时,我发现了一些很好的参考资料和资源(其他人已经提到了一些):
大多数条码阅读器都非常简单——就 PC 而言,它们只是键盘输入。大多数当前的扫描仪可以自动读取和破译各种编码方案。它们可以配置为发送特殊的前缀/后缀,以便您的应用程序可以检测到来自扫描仪的输入,而不仅仅是键盘。大多数扫描仪还可以配置为告诉您正在扫描的条形码类型,如果这对您很重要的话。
有些条码只有数字,有些是字母数字。您可能希望确保将数据库设计为允许使用字母数字数据,除非您确定您只会处理数字。
由于您没有指定任何语言,您应该看看Real World Haskell的第 12 章
这可能不是您想要的,但可能很有趣/有帮助。
您必须查看 CueCat。
:-)